Iam使用敲除js和asp.net mvc(vs2013)與實體框架 首先,我有一個索引頁(masterViewModel),我聲明所有我的子視圖模型如何解決價值不綁定問題使用observable數組和forEach綁定
此外,有一個視圖模型和函數,使服務器端ajax調用,從服務器端收集信息,插入到可觀察數組中,並綁定該數組的元素以查看從服務器端顯示的數據庫,三個對象,但綁定工作,而不是綁定三個不同的助理驅動程序名稱的視圖,它通過對象0和1循環 後三次綁定相同的值(對象2)。此刻我的電流輸出爲
史密斯 史密斯 史密斯
這是我在淘汰賽調用服務器端
function populateDrivers() {
if (!masterViewModel.isAuthenticated()) return;
$.when(getSecureData("/api/Drivers/?driverId="))
.done(function (resp) {
masterViewModel.vehicleDetail.assistantDriverList(resp.assistantDriverList)
ko.utils.arrayMap(resp.assistantDriverList, function (obj) {
//ko.utils.arrayForEach(resp.assitantDriverList, function (obj)
//arrayMap
masterViewModel.FleetInfoVM.vehicleDetail.assistantDriverName(obj.assistantDriverName);
masterViewModel.FleetInfoVM.vehicleDetail.carRegNumber(obj.CarRegNumber);
masterViewModel.FleetInfoVM.vehicleDetail.make(obj.Make);
masterViewModel.FleetInfoVM.vehicleDetail.Model(obj.Model);
});
});
}
,這我在html結合
<table style="table-layout: fixed" class="table table-striped table-bordered">
<thead>
<tr>
<th>Assistant Name</th>
</tr>
</thead>
<tr>
<td data-bind="text: $root.FleetInfoVM.vehicleDetail.assistantDriverName"> </td>
<td class="td-actions">
<a class="btn btn-small" data-bind="click: $root.vehicleDetail.edit" title="Edit">
<i class="icon-edit"></i>
</a>
<a class="btn btn-small" ">
</a>
<a class="btn btn-small">
</a>
</td>
</tr>
</tbody>
</table>
,這些都是我的視圖模型
function MasterViewModel() {
var pvm = this;
mvm.loginVM = new LoginViewModel();
mvm.VehicleVM = new vehicleViewModel();
mvm.topManagerVM = new TopManagerViewModel();
mvm.FleetInfoVM = new FleetInfoViewModel
}
MasterViewModel = new MasterViewModel();
ko.applyBindings(MasterViewModel, document.getElementById("htmlTop"));
FleetInfoViewModel
=========================================================================
function FleetInfoViewModel
{
var fiv = this;
fiv.branch id = ko.observable(0);
fiv.branch name = ko.observable(0);
fiv.location = ko.observable("");
fiv.driverDetail = new DriverViewModel();
fiv.vehicleDetail = new vehicleViewModel();
}
function DriverViewModel() {
var drv = this;
drv.driverId = ko.observable(0);
drv.driverName = ko.observable("");
}
function vehicleViewModel{
vvm.assitantDriverList = ko.observable([]);
vvm.assistantDriverName = ko.observable("");
vvm.regNumber = ko.observable(0);
vvm.make = ko.observable("");
vvm.model = ko.observable("");
}
這太長太寬了。首先隔離問題(服務器是否正確地執行它的部分?客戶端是否得到了應該的東西?等等),然後再次詢問 – Amit
是的,這是因爲其他名稱出現然後消失而使姓氏顯示三次e,g史密斯史密斯史密斯代替瓊斯,詹姆森史密斯 – anchor
你的'foreach'綁定在html中? – Dandy