我在重置/刷新/重新加载基于 Knockout 模型的同位素视图时遇到困难。我已经扩展了一个早期的小提琴来删除和替换项目,但它不可靠并且破坏了排序。
self.reset = function () {
// Remove all services
$.each(self.services(), function (index, value) {
var serviceToDelete = self.services()[0]
self.removeService(serviceToDelete);
})
// Add some back
self.services.push(new Service('some service', 'and this is a description', 7, '01/01/2000'));
self.services.push(new Service('another service', 'just another description', 2, '02/01/2000'));
self.services.push(new Service('driving school', 'learn to drive', 4, '10/01/2000'));
self.services.push(new Service('ice cream sunday', 'sweet cold and delicious', 3, '01/01/2002'));
self.services.push(new Service('tootie fruity', 'a rootie', 6, '01/01/2003'));
self.services.push(new Service('hand gliding', 'you can see your house from here', 5, '01/01/2012'));
self.services.push(new Service('turkey dinner', 'is not just for thanksgiving', 1, '01/01/2011'));
}
我使用“重置”按钮扩展了以下 jsfiddle,该按钮只是从 observableArray 中删除所有项目并一一读取它们。
它在 IE10 中完全失败。小提琴运行窗格甚至没有加载。
它在 Chrome 中部分工作,但在重置后,每当启动排序时都会输出控制台错误:
未捕获的类型错误:对象 # 没有方法 'sortBy'
在 FF 中,它会出现与 chrome 类似的错误。(但在我的应用程序中无法排序)
任何人都可以帮忙吗?重置后我需要排序才能工作。我不确定这是否是重置的“最佳”方式,因为它似乎会导致问题。