【问题标题】:Cannot get access to Marionette module from app.js无法从 app.js 访问 Marionette 模块
【发布时间】:2013-10-08 19:41:40
【问题描述】:

我目前正在阅读 David Sulc 的优秀作品“Backbone.Marionette.js: A Gentle Introduction”,并且在模块方面遇到了困难。使用当前的应用程序,我尝试从 index.html 脚本访问名为“contacts.js”的模块中的 API,但是当我尝试运行应用程序时出现以下错误:

"Handler not found for 'contact: entities' "

我可以直接从 Chrome 的控制台访问 API 并手动获取“联系人”信息,所以我认为这是一个加载顺序问题,在 app.js 加载时 API 可能不可用,但是加载顺序如下:

<script type="text/javascript" src="assets/js/vendor/jquery-2.0.3.min.js"></script>
<script type="text/javascript" src="assets/js/vendor/json2.js"></script>    
<script type="text/javascript" src="assets/js/vendor/underscore-min.js"></script>
<script type="text/javascript" src="assets/js/vendor/backbone-min.js"></script>
<script type="text/javascript" src="assets/js/vendor/backbone.marionette.min.js"></script>

那么本地脚本如下:

<script type="text/javascript" src="assets/js/app.js"></script>
<script type="text/javascript" src="assets/js/entities/contact.js"></script>

最后两个脚本标签下面的一个脚本标签直接运行如下代码:

<script type="text/javascript">
... some view code
ContactManager.on("initialize:after", function(){
    var contacts = ContactManager.request("contact: entities");
... some more code
</script>

以 var contacts = ..... 开头的行是给我错误的行。任何帮助表示赞赏

我尽我所能确定我完全按照书中的内容编写了脚本。

【问题讨论】:

  • 可以是“contact:”和“entities”之间的空格吗?
  • 你说得对,net.uk.sweet。就是这样。眼睛累了……习惯于输入 JS 名称值对,所以我在自动驾驶仪上完成了它,然后甚至无法将其视为错误!无法将评论标记为正确答案,但无论如何感谢!
  • 添加了一个答案,以便您将其标记为正确。

标签: javascript backbone.js module marionette


【解决方案1】:

您的活动名称中有一个空格:

<script type="text/javascript">
... some view code
ContactManager.on("initialize:after", function(){
    // Remove the space in contact: entities -->
    var contacts = ContactManager.request("contact: entities");
... some more code
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 2014-11-10
    相关资源
    最近更新 更多