我创建了一个带有分页选项的页面。代码看起来像:http ://blog.ryanvanderpol.com/index.php/2012/07/using-knockoutjs-to-create-an-edit-in-place-data-grid/
现在无法在淘汰赛 js 中向dependentObservable PagedList 数据添加排序
因为 PagedList 没有 Sort() 属性 ..
请帮助我
我创建了一个带有分页选项的页面。代码看起来像:http ://blog.ryanvanderpol.com/index.php/2012/07/using-knockoutjs-to-create-an-edit-in-place-data-grid/
现在无法在淘汰赛 js 中向dependentObservable PagedList 数据添加排序
因为 PagedList 没有 Sort() 属性 ..
请帮助我
您可以更改他的视图模型以使用计算的而不是可观察的数组吗?
这是一个例子
self.list = ko.observableArray(initialData);
self.sortProperty = ko.observable('propertyNameInRowObject');
self.sortedList = ko.computed( function() {
var sorted = self.list.sort( self.sortFn );
return sorted;
};
self.sortFn = function(a, b) {
if ( a[self.sortProperty()] > b[self.sortProperty()] ) {
return 1
}
else if ( a[self.sortProperty()] < b[self.sortProperty()] ) {
return -1
}
else {
return 0
}
}
self.onColumnClicked = function(e) {
var colName = e.target.Name; // probably something like this...
if ( colName === 'xyz' ) {
self.sortProperty('xyzProperty');
}
}
抱歉,我的 javascript 有点生疏了,我大部分时间都在使用 coffeescript
您可以替换如下内容:
self.someArray = ko.dependentObservable(function() {
return [someDependency()];
});
有了这个:
self.someArray = ko.observableArray();
ko.dependentObservable(function() {
self.someArray([someDependency()]);
});
// now you can call sort on someArray
var sortedArray = self.someArray.sort();
您可以使用dependentObserable/computed 来计算其他 observable 的新值而不返回任何值。