我正在阅读其他答案,但找不到解决方案,错误提示:错误:无法解析绑定。消息:ReferenceError: AdvertisementLegs 未定义;绑定值:foreach: AdvertisementLegs,我找不到原因,因为它在模型中定义:
这是模型
主模型.js
self.selectedAd = ko.observable();
self.selectAd = function (item, data) {
self.selectedAd = ko.observable(new AdvertisementMgr());
self.advertisementManager().getAdvertisementById(item);
$('#windowEditAd').jqxWindow('open');
};
Model.js
var self = this;
//URLS
self.CompanyName = ko.observable("");
//Lists
self.AdvertisementLegs = ko.observableArray();
self.getAdvertisementById = function (dataItem) {
$.ajax({
cache: false,
url: mViewModel.apiUrl + 'Advertisement',
type: "GET",
contentType: "json",
dataType: "json",
data: {
adId : dataItem.AdvertisementId()
},
success: function (data) {
mViewModel.selectedAd(data);
},
error: function (xhr, status, error) {
alert(error.message);
}
});
};
json响应是:
公司名称 “Flotsum Strategies, Inc” 广告腿 [对象 { AdvertisementLegId=6, Action="BUYER", Volume=1, más...}] 0 对象 { AdvertisementLegId=6, Action="BUYER", Volume=1, más...} 广告LegId 6 行动 “买方” 价格 0 广告编号 4 广告腿型 “TL”
观点是:
<div data-bind="with: $root.selectedAd">
<span data-bind="text: CompanyName"></span>
<input data-bind="value: CompanyName" type="text" class="txt4 leg_data_vol1" style="width: 50px; text-align: center;" id="leg_data_vol1" />
<table border="0" cellspacing="0" cellpadding="0" class="volaxe-table">
<tbody data-bind="foreach: AdvertisementLegs ">
<tr >
<td>
lalla
<input data-bind="value: Volume" type="text" class="txt4 leg_data_vol1" style="width: 50px; text-align: center;" id="leg_data_vol1" />
</td>
</tr>
</tbody>
</table>
</div>
CompanyName 没有问题,问题在于它显示的数组 Message: ReferenceError: AdvertisementLegs is not defined。为什么它说如果它在模型中并且它有结果就不能绑定它?