2013-07-21 101 views
0

我通過將相關模型的主鍵存儲在第一個模型中,然後在運行時計算實際模型來映射兩個相關模型。這會導致我的模型訪問視圖模型列表。有沒有關於這些模型相關模型的最佳方式

function Address(data){ 
    this.id = data.id; 
} 

function Person(data){ 
    var self = this; 

    self.addressIdList = ko.observableArray(); 

    this.addresses = ko.computed(function(){ 
     return _.filter(_.map(self.addressIdList(), function(id){ 
      return _.find(vm.addressList(), function(a){ 
       return a.id == id; 
      }); 
     }),function(item){ return typeof item != 'undefined';});  
    }); 
} 

function ViewModel(){ 
    this.personList = ko.observableArray(); 
    this.addressList = ko.observableArray(); 
} 

var vm = new ViewModel(); 
  • 我想從 Person.addresses刪除訪問視圖模型(vm.addressList())()中沒有更好的辦法。我怎樣才能做到這一點?
  • Will JayData或其他圖書館會幫助我嗎?

回答

1

回答我的問題...

不是存儲相關模型的id,我存儲引用的相關模型本身。因此,你可以從一個模型轉到另一個,而無需訪問視圖模型

所以

self.addressIdList = ko.observableArray(); 
self.addresses = ko.observableArray(); 

完整示例here