木偶复合视图与模型
Marionette CompositeView with a model
我希望我的复合自动渲染一个集合,它已经这样做了。但是,我也希望它为我获取一个模型并赋予复合对该模型的访问权限。
基本上,我正在尝试使用下面的客户端集合呈现用户详细信息。
复合视图
define([
"marionette",
"text!app/templates/user/view-clients/collection.html",
"app/collections/users/clients",
"app/views/user/view-clients/item",
'app/models/user'
],
function(Marionette, Template, Collection, Row, Model) {
"use strict"
return Backbone.Marionette.CompositeView.extend({
template: Template,
itemView: Row,
itemViewContainer: "#stage-user-clients",
collectionEvents: {
'sync': 'hideLoading'
},
initialize: function (options) {
this.showLoading()
this.model = new Model({_id: options.id})
this.model.fetch()
this.collection = new Collection()
this.collection.queryParams = {_id: options.id}
return this.collection.fetch()
},
showLoading: function() {
this.$el.addClass('loading')
},
hideLoading: function() {
this.$el.removeClass('loading')
}
})
})
项目视图
define(["marionette", "text!app/templates/user/view-clients/item.html"], function(Marionette, Template) {
"use strict"
return Backbone.Marionette.ItemView.extend({
template: Template,
tagName: "li"
})
})
我是否需要自己管理渲染方法,或者为模型创建一个单独的视图并将其手动绑定到复合模板中的 id?
您可能最好不要从视图中实例化您的集合/模型。
var MyCompositeView = Backbone.Marionette.CompositeView.extend({
initialize: function() {
// The collection is already bound, so we take care only of the model
// Both will be rendered on model change, though
this.listenTo(this.model, 'change', this.render, this);
// If you want to rerender the model only, use this instead :
this.listenTo(this.model, 'change', function(){
this.$el.html(this.renderModel());
}, this);
}
...
});
var myCollection = new Collection({url: '/collection/'});
var myModel = new Model({url: '/model/', id: 1});
var myCompView = new MyCompositeView({model: myModel, collection: myCollection});
myModel.fetch();
myCollection.fetch({reset: true});
这大致就是它的样子。如有疑问,请查看骨干网的来源。
相关文章:
- 角度指令没有更新模型视图
- “渲染骨干模型视图”返回未定义的结果
- 轮询更新主干模型/视图的请求
- 节点.js中的模型-视图-控制器模式
- 图像数据中的更改未反映在模型视图中
- 自定义 ngModel 指令以支持 jquery 插件中的模型>视图绑定
- 优化显示简单项目列表的模型/视图
- 建议:在JavaScript中难以使用模型视图控制器
- 将三维世界矢量转换为模型视图矩阵
- 在主干模型/视图上处理更复杂的验证逻辑(必填字段等)的最佳方式
- AngularJS在POST http请求上更新模型/视图
- web应用程序模型视图中的Java脚本
- 我的第一个骨干模型/视图.我的思路对吗?
- Knockoutjs的日期时间字段更新不会刷新模型视图
- Backbone.js中的嵌套集合/模型视图管理
- Javascript“this"模型视图演示器设计中的问题
- 模型视图控制器-javascript mvc框架设计实践,用于编辑就地界面
- 模型视图控制器-任何使用javascript mvc的人
- 模型视图控制器-我们是否在使用JavaScriptMVC(MVVM)框架,如Backbone.js、Angular等
- 模型视图控制器-AngularJS中是否可以在经典的javascript函数中使用数据绑定