骨干视图不刷新事件

时间:2013-10-11 06:45:48

标签: javascript backbone.js requirejs

我有一个使用文字的视图(HomeView)渲染模板!插入。 这是主页视图:

var HomeView = Backbone.View.extend({
   initialize: function() {
        myCart.updateQtyLabel("qtyCart");
   },
   el: '#webbodycontainer',
   events : {
       "click #addToCart" :  function(){
           myCart.addToCart(newItem);
           myCart.updateQtyLabel("qtyCart");
           $("#containernewpromotion").html(promotionItem);
       }
   },
   render : function(){
       this.$el.html(homePanel);
       $("#containernewpromotion").html(promotionItem);
   }
});

这是html模板:

<% var items = deserializeJSONToObj(localStorage.getItem("Cart"));%>
  <%  if(items != null){  %>
    <% var i = 0; %>
       <% _.each(items, function(item) { %>
          <% if (i < 4){ i++; } else { return false; }%>
          <div class="promotionColumn">
             <div class="itemImg">
                  <a href="#itemDetail"><img src="<%=WebConfig.PartImageBrand + item.PictureName%>" width="135px"/></a>
             </div>
          </div>
  <% }); %>
<% } %>

这是itemDetail视图:

 var ItemDetailView = Backbone.View.extend({
    initialize: function() {
        alert("test");
    },
    render: function(){
        alert("test2");
    }
});

当我点击<a href="#itemDetail">时,我在Chrome控制台event.returnValue is deprecated. Please use the standard event.preventDefault() instead.中收到了一条警告消息,alert中的ItemDetailView无效。

网址为/#itemDetail,但HomeView中使用的模板仍显示在itemDetail路由器中。我在浏览器中按HomeView时会从itemDetail页面中删除refresh个内容。

任何想法可能导致这个问题。感谢。

1 个答案:

答案 0 :(得分:0)

骨干视图中的事件对象具有以下结构

"events" : {
    "event selector" : "handler"
},
"handler" : function(){

}

events对象中的值是字符串,而不是函数。