2013-02-06 23 views
0

我想將計算添加到使用Knockout映射填充的子視圖模型。當我進入時,我看到角色數組在javascript數組中正確填充,但在我的視圖模型中,可觀察數組始終是長度爲0.Knockout映射ObservableArray不包含我的對象

以下是顯示它的jsfiddle。任何幫助我失去了什麼將不勝感激。

http://jsfiddle.net/spbrogan/aREpY/

這裏是孩子視圖模型

var userModel = function(data) { 
    data.createDate = new Date(data.createDate); 

    ko.mapping.fromJS(data, {}, this); 


    this.isAdmin = ko.computed(function() { 
     var admin = false; 
     ko.utils.arrayForEach(this.role(), function(role) { 
      if(role.name == "Admin") { 
       admin = true; 
      } 
     }); 
     return admin; 
    }, this); 
} //close userModel 

感謝

回答

0

的映射已運行後,它從你的JS創造可觀 - 不僅僅是根對象,但它裏面的所有特性。可觀察到的是一個函數,所以你需要使用()形式訪問名稱:

ko.utils.arrayForEach(this.role(), function(role) { 
    if(role.name() == "Admin") { 
     admin = true; 
    } 
}); 

這裏是一個更新的小提琴:http://jsfiddle.net/aREpY/41/

+0

感謝。我很接近。 – Sean

相關問題