哪个函数将被视为淘汰js中的视图模型

时间:2015-06-04 15:00:21

标签: knockout.js

我是淘汰赛的新手。所以请看下面的代码并告诉我哪个函数将被视为视图模型?

有两个函数一个是CartLine,另一个是Cart .............这个函数会被视为视图模型吗?

请参阅此代码ko.applyBindings(new Cart());

应用绑定指向购物车功能.......这是否意味着cart()将被视为视图模型?如果是,那么我们应该CartLine()?它是子视图还是嵌套视图模型?

寻求指导。代码取自此jsfiddle http://jsfiddle.net/3bu6nybk/15/

var CartLine = function () {
          var self = this;
          self.products = ko.observableArray(_products);
          self.product = ko.observable(1);
          self.price = ko.observable(1);
          self.quantity = ko.observable(1);   
          self.product.subscribe(function(item){
              if(!item)
              { 
                 self.price(0);
                 self.quantity(0);
                 return;
              }
             self.price(item.price);
             self.quantity(item.quantity);
          });

          self.subtotal = ko.computed(function () {

              return self.price() * self.quantity();
          },self);
      };

      var Cart = function () {
          // Stores an array of lines, and from these, can work out the grandTotal
          var self = this;
          self.lines = ko.observableArray([new CartLine()]); // Put one line in by default
          self.formatCurrency = formatCurrency;

      };

1 个答案:

答案 0 :(得分:0)

如果您将所有代码都包含在这样的变量中:

var viewModel = {
    //your code here
}

然后像这样调用你的apply绑定:

ko.applyBindings(new viewModel());

所有内容都将出现在您的视图模型中。

有关详细信息,请参阅此链接:http://knockoutjs.com/documentation/observables.html