Backbone JS 模型:隐藏下拉菜单
Backbone JS Models: Hiding a dropdown
如果这是一个愚蠢的问题,请原谅。我正在尝试根据 Backbone 模型中的属性值隐藏一个下拉菜单,类似这样
var MyModel = Backbone.Model.extend({
initialize: function(options) {
// I have access to this.attributes here
if(options.name == 'Test') {
// hide the subject dropdown
}
}
});
我试图隐藏下拉菜单,但正在寻找想法来弄清楚执行此操作的正确方法是什么?由于下拉列表采用 Backbone 形式,我想知道是否可以在模型
中将类型设置为 'Hidden'
谢谢
您应该不在模型中这样做。模型用于存储数据,隐藏下拉列表是表示逻辑。它应该在视图中完成。
所以基本上你的视图会像
if(this.model.get('name') === 'pink'){
this.$('#pinks-dropdown').hide();
}
您可以在模型中拥有一个对其数据进行一些操作的方法,因此您可以在模式中拥有这样的方法:
isNameMatchingSomething: function(){
// some big logic
return this.get("name") === 'pink';
}
您可以使用它来隐藏视图中的下拉菜单,例如:
if(this.model.isNameMatchingSomething()){
this.$('#pinks-dropdown').hide();
}
如果这是一个愚蠢的问题,请原谅。我正在尝试根据 Backbone 模型中的属性值隐藏一个下拉菜单,类似这样
var MyModel = Backbone.Model.extend({
initialize: function(options) {
// I have access to this.attributes here
if(options.name == 'Test') {
// hide the subject dropdown
}
}
});
我试图隐藏下拉菜单,但正在寻找想法来弄清楚执行此操作的正确方法是什么?由于下拉列表采用 Backbone 形式,我想知道是否可以在模型
中将类型设置为 'Hidden'谢谢
您应该不在模型中这样做。模型用于存储数据,隐藏下拉列表是表示逻辑。它应该在视图中完成。
所以基本上你的视图会像
if(this.model.get('name') === 'pink'){
this.$('#pinks-dropdown').hide();
}
您可以在模型中拥有一个对其数据进行一些操作的方法,因此您可以在模式中拥有这样的方法:
isNameMatchingSomething: function(){
// some big logic
return this.get("name") === 'pink';
}
您可以使用它来隐藏视图中的下拉菜单,例如:
if(this.model.isNameMatchingSomething()){
this.$('#pinks-dropdown').hide();
}