如何在骨干网的不同视图中调用相同的功能

时间:2013-10-13 10:26:53

标签: backbone.js

我在骨干项目中创建了一个客户类:

function Cart(){
    //some working code here
    this.updateQtyLabel = function(labelName){
        $('#'+ labelName).text(getTotalQtyItemCart());
    };
}

我在Home视图中调用了此函数:

var myCart = new Cart();
var HomeView = Backbone.View.extend({
   initialize: function() {
        myCart.updateQtyLabel("qtyCart");
   },
   //..... code of home view 
}

这是index.html中的html块:

<div id="qtyCart"></div>

因此updateQtyLable()仅适用于我网页中标题的主页视图。

任何人都可以给我一些想法,我应该怎样/在哪里调用updateQtyLable()使其适用于我网站的所有页面。

非常感谢。

1 个答案:

答案 0 :(得分:0)

没有全局方法可以为所有视图调用某个函数。 因此,您可以为所有视图编写基础对象,并在其initialize方法中调用方法。像这样:

var BaseView = Backbone.View.extend({
    initialize: function () { ..call here what you need...}
});

var HomeView = BaseView.extend({
    initialize: function () {
      BaseView.prototype.initialize.call(this);
      ..other code here...
    }
});