我是骨干新手,我正面临这个设计问题。
我有一个骨干模型,为了更新自己,对服务器进行Ajax调用。 Ajax调用的结果不是代表模型的一些漂亮而干净的json,而是应该在页面中显示的实际HTML。
根据骨干约定,表示模型的视图应该监听属性更改,然后呈现表示模型的UI。
由于模型直接从服务器获取HTML,我建议的组织代码的方法是什么?
我的想法是将视图绑定到模型属性。当模型执行ajax调用时,属性会更新,因此视图会通过主干事件得到通知,并从模型中提取要显示的HTML。
以下图表更好地解释了我的问题。
答案 0 :(得分:1)
鉴于您的API发送HTML,并将其视为不可更改的外部约束,您的提案是务实的,这就是我要做的。
答案 1 :(得分:0)
在模型中覆盖解析方法并将结果存储为属性。与
parse: function(response, options){
this.set('html',response);
}
然后使用以下内容覆盖视图中的渲染:
render: function() {
this.$el.html(this.model.get('html'));
return this;
}
这会将您从服务器获得的响应插入到DOM中。