2

我有一个基本的淘汰模型来处理列表,具有通用功能(分页、排序等):

ListViewModel.js:

function ListViewModel() {
    var self = this;

    self.Items = ko.observableArray();
    // other props and methods
}

return ListViewModel;

现在,我想为具体类 UsersListViewModel 重用(继承)这个模型。最好的方法(接受淘汰赛)是什么?在 UsersListViewModel 中创建 ListViewModel,或者用新的字段和方法扩展 ListViewModel?

现在我在 UsersListViewModel 中创建了一个 ListViewModel 对象,但我不喜欢这样:

用户列表视图模型:

 function UsersListViewModel(model) {
      var self = this;

      self.List = new ListViewModel();
      self.IsInitialized = ko.observable(false);
 }

 return UsersListViewModel;
4

1 回答 1

3

过去,当我们不得不做这样的事情时,我们只是使用 apply ( http://jsfiddle.net/85TeD/1/ ):

function UsersListViewModel() {
    var self = this;

    ListViewModel.apply(self);

    self.OtherProp = ko.observable("other");

}

如果你想实现完整的经典继承,这是一个开始:http ://www.crockford.com/javascript/inheritance.html

于 2013-11-14T12:21:12.377 回答