2013-01-15 10 views
1

我试图用一个品牌打击用Backbone.js编写的新界面替换现有的Web应用程序。最终,这将会非常棒,因为应用程序是由一个用Python + CherryPy编写的restful API支持的,并且不愿意刷新它的主机页面。我的Backbone.js应用程序在页面加载时抛出JSON.Parse SyntaxError

我的第一步是尝试使用关于'net'的各种教程来展示一个小的Backbone.js概念验证。以下是我想出了:

<!DOCTYPE html> 
<html> 
<head> 
    <script type="application/javascript" src="/static/js/jquery-1.8.2.min.js"></script> 
    <script type="application/javascript" src="/static/js/underscore-min.js"></script> 
    <script type="application/javascript" src="/static/js/json.js"></script> 
    <script type="application/javascript" src="/static/js/ICanHaz.min.js"></script> 
    <script type="application/javascript" src="/static/js/backbone.js-0.9.9-min.js"></script> 

    <script type="application/javascript"> 
     $(function() { 
      //logical model of a user 
      var User = Backbone.Model.extend({}); 

      //visual representation of a user 
      var CurrentUserView = Backbone.View.extend({ 
       render: function() { 
        this.el = ich.user(this.model.toJSON()); 
        return this; 
       } 
      }) 

      //create a user and drop its representation into the DOM 
      var currentUser = new User({username: "hello world"}); 
      var view = new CurrentUserView({model: currentUser}); 
      $('.content').append(view.el.render()); 
     }); 
    </script> 
</head> 
<body> 
    <div class='content'> 
     <p>The user representation should show up below this paragraph</p> 
    </div> 

    <!--ICanHaz user template --> 
    <script id="user" type="text/html"> 
     <ul class="user"> 
      <li><a href="#">{{ username }}</a></li> 
      <li><a href="#" id="logout">logout</a></li> 
     </ul> 
    </script> 
</body> 
</html> 

不幸的是,当我在Firefox加载这个页面上,用户表示不会将。内容div中显示出来,并在Web控制台错误消息SyntaxError: JSON.parse: unexpected character显示出来。

这个问题似乎涉及到CurrentUserView,因为下面的代码不正是我想要的:

$(function() { 
    //logical model of a user 
    var User = Backbone.Model.extend({}); 

    //create a user and drop its representation into the DOM 
    var currentUser = new User({username: "hello world"}); 
    $('.content').append(ich.user(currentUser.toJSON())); 
}); 

这到底是怎么回事?

+0

什么是ich.user? – muneebShabbir

回答

1

不知道为什么这会给你一个解析错误,但我认为$('.content').append(view.el.render());应该是$('.content').append(view.render().el);

+0

不,相同的错误消息。 – MusikPolice

+0

也就是说,一旦我解决了实际问题(请参阅下面的答案),就会发现此语法错误。谢谢。 – MusikPolice

1

经过一个良好的睡眠和代码第二遍后,它看起来像我已经下载了json库,而不是所需的json2库。一切都如预期般运作。

相关问题