如何解决我应该在哪里查看与常量相关的常量-bone.js
| 想象一下,我有一个视图,并且作为视图的一部分,它渲染\'x \'模型对象,并且仅渲染\'x \'。问题是,将这个与视图相关的常数放在哪里对我合适? 我的猜测是做这样的事情:myApp.MyView = Backbone.View.extend({
...
myConstant: 10,...
render: function(){
...
//some code that uses myConstant
...
}
});
这有意义吗?
任何建议都有帮助!
解决方法
听起来您想要做的就是为视图分配一个class属性。您可以将第二个哈希传递到扩展调用中以执行此操作。您的代码如下所示:
myApp.MyView = Backbone.View.extend({
render: function() {
alert(myApp.MyView.myConstant);
}
},{
myConstant: 10
});
您的常量可以通过myApp.MyView.myConstant访问。
,你很亲密!您实际上将只使用this.myConstant。这是一个有效的例子...
testView = Backbone.View.extend({
test: \"hello world!\",initialize: function(){
alert( this.test );
_.bindAll(this,\"render\");
},render: function(){
//do your rendering...
return this;
}
});
var view = new testView();
,如上所述,我同意(并赞成)接受的答案,但是为了清楚起见,我倾向于采用这种格式:
myApp.MyView = Backbone.View.extend({
render: function() {
alert(myApp.MyView);
}
});
_.extend(myApp.MyView.prototype,{
enum : {
//...
}
});
原因是您的视图可能有很多mixin,并且我发现当您继续在View.extend的一个接一个的对象中添加对象时,可见性变得模糊了。至少通过这种方式,您可以将其分解并在混入之间添加注释。如果您正在使用RequireJS并加载一组通用的枚举/混合,这也就更有意义了。
,不要在extend下初始化视图常量,对于所有视图实例,它的行为就像静态常量。改用构造函数:
constructor: function()
{
Backbone.View.prototype.constructor.apply(this,arguments);
this.myConstant = 10;
this.myOtherConstant = {};
}
在这里更多的解释
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。