2017-11-25 141 views
1

在POS机的javascript有这样的代码:另一个元素添加到模型列表[odoo-8] POS JavaScript的

module.PosModel = Backbone.Model.extend({ 
     ..... 
     ..... 
     models: [ 
      { 
       model: 'res.users', 
       fields: ['name','company_id'], 
       ids: function(self){ return [self.session.uid]; }, 
       loaded: function(self,users){ self.user = users[0]; }, 
      }, 
      .... 
      .... 
      ] 

在我costum模块我只想一个元素添加到列表的末尾, 我设法增加它这样做:

  module.PosModel = module.PosModel.extend({ 
       models: [ 
        { 
         model: 'res.users', 
         fields: ['name','company_id'], 
         ids: function(self){ 
         return [self.session.uid]; 
         }, 
         loaded: function(self,users){ self.user = users[0]; }, 
        }, 
        ..... 
        // repeate the same list with my new element 
        ], 
       } 

现在我的问题是,如何只是我的元素添加到旧列表,而无需repeate孔列表。

回答

2

,我们有机会在初始化方法的所有属性的好东西:

// in needed to save prototype here 
    // so it will not cause a recursive loop 
    var _super = module.PosModel.prototype; 
    module.PosModel = module.PosModel.extend({ 
    initialize: function (session, attributes) { 
     // call super to set all properties 
     _super.initialize.apply(this, arguments); 
     // here i can access the models list like this and add an element. 
     this.models.push({ 
     // load allowed users 
      model: 'res.users', 
      fields: ['name'], 
      domain: function(self){ return [['id','in',self.config.user_ids]]; }, 
      loaded: function(self,users){ 
       console.log(users); 
       self.allowed_users = users; 
      }, 
     }) 
     return this; 
    }, 

    }); 
+0

信息,谢谢 –

相关问题