我正在使用 Breeze,它会自动创建一个嵌套的 Observablearray 结构,该结构由不同级别的依赖 observables 组成。
我试图模仿这个小提琴中的结构。简单地说,我有一个客户端实体从服务器返回,并带有一个相关的用户实体,Breeze 会自动映射到一个可观察的数组。我只需要从这个数组中在我的表单上显示一些客户端属性和一些用户属性。
HTML
<div>
<select data-bind="options: clientAndStaff, optionsText: 'clientId', value: 'clientId', optionsCaption: 'Select a client'"></select>
</div>
虚拟机
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 或者更好的是 firstName + LastName 给定 observableArray 结构。提前致谢