私は Breeze を使用しています。これは、さまざまなレベルの依存オブザーバブルで構成されるネストされた Observablearray 構造を自動的に作成します。
このフィドルの構造をエミュレートしようとしました。簡単に言えば、Breeze が監視可能な配列に自動的にマッピングする関連ユーザー エンティティと共に、サーバーからクライアント エンティティが返されます。この配列からフォームにいくつかのクライアント プロパティといくつかのユーザー プロパティを表示する必要があるだけです。
HTML
<div>
<select data-bind="options: clientAndStaff, optionsText: 'clientId', value: 'clientId', optionsCaption: 'Select a client'"></select>
</div>
VM
var esp= esp||{};
esp.ClientDetails = function(x){
this.clientId = new ko.dependentObservable(function(){return x.clientId;});
this.User = new ko.dependentObservable(function(){return x.ClientStaffDetails;});
};
esp.ClientStaffDetails = function(x){
var FirstName = new ko.dependentObservable(function(){return x.firstName;});
var LastName = new ko.dependentObservable(function(){return x.lastName;});
};
esp.vm = new (function()
{
this.clientAndStaff= ko.observableArray(
[
new esp.ClientDetails({clientId:1
,clientStaff:new esp.ClientStaffDetails({firstName:'first',lastName:'example'})
}),
new esp.ClientDetails({clientId:2
,clientStaff:new esp.ClientStaffDetails({firstName:'second',lastName:'example'})
})
]
);
});
ko.applyBindings(esp.vm);
フィドル
optionsText を firstName にバインドする方法、または observableArray 構造を指定して firstName + LastName にバインドする方法を教えてください。前もって感謝します