私は他の回答を読んでいましたが、解決策が見つかりません。エラーは次のように述べています:エラー:バインディングを解析できません。メッセージ: ReferenceError: AdvertisementLegs が定義されていません。Bindings の値: foreach: AdvertisementLegs。モデルで定義されているため、理由がわかりません。
モデルはこちら
メイン Model.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 応答は次のとおりです。
会社名 「フロッサム・ストラテジーズ株式会社」 広告脚 [Object { AdvertisementLegId=6, Action="BUYER", Volume=1, más...}] 0 Object { AdvertisementLegId=6, Action="BUYER", Volume=1, マス...} AdvertisementLegId 6 アクション "買い手" 価格 0 広告ID 4 AdvertisementLegType "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 が定義されていません。モデル内にあり、結果がある場合、バインドできないと言うのはなぜですか?