2012-07-04 48 views
2

這應該是一個簡單的方法:我的viewmodel中包含一個名爲「To」的observableArray對象,其中包含EmailAddress元素。每個元素都有兩個屬性:DisplayName和Address。KnockoutJS - 在文本框中顯示observableArray逗號的內容

我想將數組中的每個元素都打印到單個輸入字段中,並用冒號分隔。我現在我得到的是:

「[目標對象],[目標對象]」

如何綁定並打印屬性呢?我已經嘗試過各種解決方案,比如添加「value:to.DisplayName」但無濟於事。

<!-- illustration only, this is what the items in the TO array look like 
    I want to print the value of DisplayName for each element --> 
var EmailAddress = function(dName, addr) { 
    self = this; 
    self.DisplayName = dName; 
    self.Address = addr; 
}; 

<!-- viewmodel --> 
var EmailModel = function (email) { 
      var self = this; 
      self.id = ko.observable(); 
      self.subject = ko.observable(); 
      self.body = ko.observable(); 
      self.from = ko.observable(); 
      self.to = ko.observableArray(); <-- display the DisplayName property of these elements) 
      self.cc = ko.isObservable(); 
      self.bcc = ko.observable(); 
      }; 


<!-- print the contents of the TO array --> 
<input data-bind="value: to" type="text" /> 

回答

2

編輯:錯過了錯誤第一次左右,應仔細閱讀整個問題下一次。

在這種情況下有兩種方法。使用計算的obvservable,或內聯arrayMap。

這是a fiddle.

+0

謝謝,但給我的輸出時,我只是用「價值:以」相同。我也更新了這個問題,因爲我的ObservableArray包含對象,而不是那些有所作爲的字符串。 – Andreas

+0

@Andreas查看編輯 – Tyrsius

+0

好吧,那可行!謝謝,我希望我可以避免計算函數,直接訪問屬性,但這樣做! – Andreas

相關問題