如何根据主干和木偶中的对象更改更新视图
how to update the view based on a object change in backbone and marionette?
我有一个观点:
define(['backbone', 'hbs!tmpl/test_tmpl'],
function (Backbone, TestTmpl) {
'use strict';
return Backbone.Marionette.ItemView.extend({
initialize: function () {
this.projects = {};
},
template: TestTmpl,
templateHelpers: function () {
return {
projects: this.projects
}
},
ui: {},
events: {},
onRender: function () {
this.projects = {title: 'a'};
return this;
}
});
});
然后在视图中:
{{#each projects}}{{this.title}}{{/each}}
在onRender()
方法中,我更新了项目this.projects = {title: 'a'};
,设置后,我也希望视图数据也更新
有什么想法吗?
尝试调用
this.render();
通常,您将使用集合视图而不是项视图。
如果您碰巧需要更多围绕包装元素的 HTML,请改用复合视图。
请注意,集合视图在传递时会采用主干集合:
var collectionview = new CollectionView({ collection: bbCollection });
项视图采用模型:
var itemview = new ItemView({ model: bbModel});
例如,使用集合视图无需在模板中创建循环。
您可以通过调用
this.model.get("property");
在项目视图上。
在您的示例中,在我看来,您宁愿使用数组而不是对象:
var projects = [{ title: "X"}, { title: "Y" }];
您可以通过以下方式动态创建主干集合:
var projects_collection = new Backbone.Collection(projects);
并将其传递给集合视图:
//First create a Marionette Collectionview, then:
var projectsCollview = new ProjectsCollview({ collection: projects_collection });
相关文章:
- $routeParams在传递到新视图时未定义&控制器
- 如何在渲染新视图之前关闭所有事件
- 从Backbone中的另一个视图调用新视图
- Angular2 在创建 ngSwitch 新视图后调用自定义函数
- 主干新视图反映旧模型数据
- 创建新视图时调用呈现函数
- 离子替换新视图的选项卡和页脚
- KnockoutJS - 从嵌套对象获取视图模型数据
- 如何使用angular JS将javascript对象从视图传递到控制器
- 将对象从视图页传递到Spring控制器
- YII:如何将参数列表从js传递到控制器,并通过传递另一个列表来调用新视图
- AngularJS-关闭tile并从ngRepeat指令AngularJS中的模型加载新视图
- 美元AngularJs http.post不渲染新视图
- Angular UI Router新视图,相同的URL
- 如何给出指向对象新实例化的指针
- AngularJS:在Promise被解析后,为新视图操作DOM
- 将JsonResult对象从视图中的javascript函数传递给控制器
- 骨干移除和新视图不会重置其属性数组内容
- 尝试将数据加载到新视图中
- 如何用Rivets JS绑定一个新对象到视图