我使用WinJS.Binding.List
函数来渲染一些集合。我希望该列表中的所有项都是可观察对象。此外,我想扩展具有其他属性的项目。
为了做到这一点,我没有使用WinJS.Binding.as
函数调用,WinJS.Binding.List
在每个push
调用中执行。我正在创建自定义构造函数,然后将其与WinJS.Binding.mixin
混合。
示例:
var SomeViewModel = WinJS.Class.define(function(sourceModel) {
this._initObservable();
this.prop1 = sourceModel.someProp1;
this.prop2 = sourceModel.someProp2;
...
this.propN = sourceModel.somePropN;
this.additionalProp = false;
this.someMoreProps = [];
});
WinJS.Class.mix(SomeViewModel, WinJS.Binding.mixin, WinJS.Binding.expandProperties({
// Here I have to list ALL the properties from the constructor function
}));
我的问题是:是否有一些方法可以编写更少的代码,而不是在expandProperties
函数中复制属性列表?