Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
backbone.js位字段值添加到模型最佳实践中_Backbone.js - Fatal编程技术网

backbone.js位字段值添加到模型最佳实践中

backbone.js位字段值添加到模型最佳实践中,backbone.js,Backbone.js,如果我有一些位掩码常数,即kRequired=0x1、kLocked=0x2、kTypeA=0x4、kTypeB-0x8等 应该在哪里将它们添加到模型中,因为我宁愿没有全局变量,即使它们是不可变的值。在A.B.C.D以下面的代码还是其他方式 这里有很多(30个),只是在下面的例子中展示了一对。在我看来,它们不是要设置/获取的实际实例值,而是一个作用域为模型类的全局查找 var Entry = Backbone.Model.extend({ initialize: function

如果我有一些位掩码常数,即kRequired=0x1、kLocked=0x2、kTypeA=0x4、kTypeB-0x8等

应该在哪里将它们添加到模型中,因为我宁愿没有全局变量,即使它们是不可变的值。在A.B.C.D以下面的代码还是其他方式

这里有很多(30个),只是在下面的例子中展示了一对。在我看来,它们不是要设置/获取的实际实例值,而是一个作用域为模型类的全局查找

  var Entry = Backbone.Model.extend({
      initialize: function(){

      /** A) here the models init ?  **/
      this.kRequired = 0x1 ,
      this.kLocked - 0x2. 

      /* .... */ 
      },


      /*  B) here as models meta data ?? */
      kRequired ": 0x1.
      kLocked    : ox2.

      isLocked = function{){
        return ((this.get('bitinfo') & kLocked) != 0)
      }


     });


    new Entry({/* C) here with instance data */
               {
                bitinfo: 0x102, 
                name:"abd"
               },
               /* or D) with class data here? */
               );

以下是您的入门车型的理想结构:

 var Entry = Backbone.Model.extend({
          // define the mode variables in defaults 
          defaults:{
            kRequired:0x1,
            kLocked:0x2
            instaceVariable:""  // can add default value
        },
          initialize: function(){          
                var req=this.get("kRequired") // to retrieve kRequired
                var lock=this.get("kLocked")   // to retrieve kLocked
          }     
         });
  var myEntry=new Entry({instaceVariable:"New Instace value"}); 
   //create an instance of Model

您可以在模型的默认值中添加常量值,这样就可以使用模型的Instance访问它们。您需要通过.get()函数访问它们。

我遇到了同样的问题。我不想使用Umesh提出的默认解决方案,因为我将保存模型,不想使用无关字段

我最终在模型类之外创建了一个配置对象。例如,它看起来像:

var Entry = Backbone.Model.extend({
 // ...
});
Entry.constant = {};
Entry.constant.kRequired = 0x1;
...

然后您可以像使用任何普通javascript变量一样使用Entry.constant.kRequired。它不依赖于是否创建了新的Entry对象,更清楚的是这些是类级常量。

您能描述Entry的性质及其用途吗?或者关于你可能有明确指导方针的观点?