Vad*_*nov 21 backbone.js marionette
我正在使用Handlebars模板引擎.
所以,我有模特:
Backbone.Model.extend({
urlRoot: Config.urls.getClient,
defaults: {
contract:"",
contractDate:"",
companyTitle:"",
contacts:[],
tariff: new Tariff(),
tariffs: [],
remain:0,
licenses:0,
edo:""
},
initialize:function(){
this.fetch();
}
});
Run Code Online (Sandbox Code Playgroud)
然后木偶项目查看:
Marionette.ItemView.extend({
template : templates.client,
initialize: function () {
this.model.on('change', this.render, this);
},
onRender: function () {
console.log(this.model.toJSON());
}
});
Run Code Online (Sandbox Code Playgroud)
然后我称之为:
new View({
model : new Model({id:id})
})
Run Code Online (Sandbox Code Playgroud)
而且,它会立即为我呈现一个视图,这很酷.但是在模型获取数据之后它会触发"更改",所以我在控制台序列化模型中看到两次,我第一次看到空模型然后填充一个.
但是,视图未更新.
我怎么解决它?
PS我明白,我可以在fetch done回调上调用render方法.但是当用户改变模型时,我还需要它进行进一步的操作.
Fiz*_*han 45
在视图中,您可以使用以下代码
modelEvents: {
'change': 'render'
}
Run Code Online (Sandbox Code Playgroud)
代替
initialize: function () {
this.model.on('change', this.render, this);
},
onRender: function () {
console.log(this.model.toJSON());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33349 次 |
| 最近记录: |