【发布时间】:2014-09-09 13:46:07
【问题描述】:
我的 Backbone 应用中有一个树形视图,我使用嵌套的集合和模型:
收藏:
define(function(require) {
var Backbone = require('backbone')
, UserListModel = require('app/models/userList');
return Backbone.Collection.extend({
model: UserListModel,
url: '/api/lists',
});
});
型号:
define(function(require) {
var Backbone = require('backbone');
return Backbone.Model.extend({
constructor: function(data, opts) {
opts = _.extend({}, opts, {parse: true});
var UserLists = require('app/collections/userLists');
this.children = new UserLists();
Backbone.Model.call(this, data, opts);
},
parse: function(data) {
if (_.isArray(data.children))
this.children.set(data.children);
return _.omit(data, 'chilren');
}
});
});
部分视图:(此处为完整视图:http://laravel.io/bin/O9oYX)
var UserListTreeItemView = Backbone.View.extend({
render: function() {
var data = this.model.toJSON();
data.hasChildren = !!this.model.get('isFolder');
this.$el.html(this.template(data));
if( this.model.get('isFolder') ) {
var list = new UserListTreeView({
collection: this.model.children
});
this.$el.append(list.render().el);
}
return this;
}
});
我使用两个视图将我的集合呈现为树视图。我想在树形视图中添加搜索功能,但我不知道怎么做。它应该能够搜索所有模型及其嵌套模型上的name 属性。
有什么想法吗?
【问题讨论】:
-
您可以为这棵树发布
render的一部分View吗? -
@Mostafa 我在这里粘贴了所有 3 个视图:laravel.io/bin/O9oYX
标签: javascript backbone.js filter