2012-07-04 44 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

相关问题