无法从app.js访问Marionette模块

时间:2013-10-08 19:41:40

标签: javascript backbone.js module marionette

我目前正在通过David Sulc出色的“Backbone.Marionette.js:一个温和的介绍”工作,并且已经解决了模块问题。使用当前的应用程序,我试图从index.html脚本访问名为“contacts.js”的模块中的API,但是当我尝试运行应用程序时出现以下错误:

"Handler not found for 'contact: entities' "

我可以直接从Chrome控制台点击API并手动获取“联系人”信息,因此我认为这是一个加载序列问题,其中API可能在app.js加载时无法使用,但是加载顺序如下:

<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 = .....的行是给我错误的那一行。任何帮助表示赞赏

我尽可能肯定我已完全根据本书编写了这本书。

1 个答案:

答案 0 :(得分:0)

您的活动名称中有空格:

<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>