【发布时间】:2013-06-19 14:34:50
【问题描述】:
取以下代码:
var model = new Backbone.Model({
items: new Backbone.Collection([
new Backbone.Model({ ID: 1 }),
new Backbone.Model({ ID: 2 })
])
});
var vm = new kb.ViewModel(model)
根据 KnockBack API 所说的(即:http://kmalakoff.github.io/knockback/tutorial_kb_view_model.html),我预计“vm.items”将是一个 kb.CollectionObservable。
但是,当我尝试使用 kb.CollectionObservable 函数“过滤器”和“比较器”将排序和过滤函数归于集合时,这些函数是未定义的。
vm.items.filters
= undefined
通常可以通过 viewModel 构造函数选项指定这些函数,但在我的情况下,这些项目将作为更大的关系模型的一部分被下拉(目前正在使用工厂创建子视图模型)所以我不能这样做就这样吧。
我已经确认从头开始创建一个新的 kb.collectionObservable 会显示这些功能,即:
var collection = new kb.collectionObservable(new Backbone.Collection([
new Backbone.Model({ ID: 1 }),
new Backbone.Model({ ID: 2 })
]))
collection.filters
= function()
任何帮助将不胜感激。
【问题讨论】:
-
试过使用vm.items()?
-
返回视图模型数组,无法访问我提到的那些函数。
标签: javascript backbone.js viewmodel