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();
}