aar*_*ell 28 javascript model-view-controller backbone.js
我一直在踢Backbone.js的轮胎并在最近几周玩游戏,所以有点像菜鸟问题......
在backbone.js中定义和使用视图助手的"正确"方法是什么?
据我所知,定义助手在模板中使用的唯一真实位置是模型或集合本身.但是,当该帮助程序直接返回HTML时,这开始感觉有点脏.
有没有更好的办法?
cmp*_*lis 42
有几个不同的地方,我把视图助手与Backbone.js:
如果帮助程序特定于某个视图,请将其放在视图定义中:
var MyView = Backbone.View.extend({
tagName: 'div',
events: {
...
},
initialize: function() { ... },
helperOne: function() {
// Helper code
},
anotherHelper: function() {
// Helper code
},
render: function() {
... this.helperOne() ...
}
});
Run Code Online (Sandbox Code Playgroud)
如果所有视图都使用帮助程序,请扩展Backbone View类,以便所有视图都继承此函数:
_.extend(Backbone.View.prototype, {
helper: function() {
// Helper code
}
}
Run Code Online (Sandbox Code Playgroud)
如果您需要在视图之间进行更复杂的帮助程序共享,请让视图相互扩展:
var MyOtherView = MyView.extend({
// ...
render: function() {
... this.helperOne() ...
}
});
Run Code Online (Sandbox Code Playgroud)
我不确定什么是最佳实践(或者如果已经建立了最佳实践),但这些模式看起来相当干净且运行良好.