2

これは単純なものである必要があります。ビューモデルに「To」というobservableArrayオブジェクトがあり、EmailAddress要素が含まれています。各要素には、DisplayNameとAddressの2つのプロパティがあります。

配列内の各要素を、セミコロンで区切られた単一の入力フィールドに出力したいと思います。私が今得ているのは:

「[オブジェクトオブジェクト]、[オブジェクトオブジェクト]」

代わりに属性をバインドして印刷するにはどうすればよいですか?「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" />
4

1 に答える 1

2

編集:最初にエラーを見逃しました。次回は質問全体を読む必要があります。

その場合、2つの方法があります。計算されたobvservableを使用するか、arrayMapをインライン化します。

ここにそれはフィドルにあります。

于 2012-07-04T03:09:29.390 に答える