2017-11-25 164 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

信息,謝謝 –

相關問題