顧客の名前と画像を表示するためだけに、単純なリストにバインドしようとしている Web サービスから次の JSON が返されます。
{"Customers":{"data":[{"CustomerID":1,"CustomerName":"Jones","CustomerImage":"~/Images/Customers/Jones02.gif","CustomerEnabled":true},{"CustomerID":7,"CustomerName":"Hughes","CustomerImage":"~/Images/Customers/Hughes057847.gif","CustomerEnabled":true},{"CustomerID":13,"CustomerName":"Michaels","CustomerImage":"~/Images/Customers/M12012.gif","CustomerEnabled":true},{"CustomerID":123,"CustomerName":"Bernard","CustomerImage":"~/Images/Customers/kb040412.gif","CustomerEnabled":true}]}}
私のマークアップには
<section id="CustomerList">
<ul data-bind: 'foreach: data'>
Data: <span data-bind="text: JSON.stringify(ko.toJS($data), null, 2)"></span>
<li>
<span data-bind="text:CustomerID"></span>
</li>
</ul>
</section>
しかし、ノックアウトのデータバインディングを介してIDを書き出すことはできません。
このプロセスを実行するための私の JS は次のとおりです。
var ViewModel = {
Customer: []
};
dataService.getCustomers(function (data) {
ViewModel.Customer = data.Customers;
ko.applyBindings(ViewModel);
});
getCustomers() コールバックにステップ インして、JSON が上記のように戻ってくることを検証できます。また、ViewModel.Customer にクエリを実行して、割り当てられたデータを確認することもできますが、何も書き出されません。これは些細なことだと思いましたが、これまでのところ何も機能していません。
何か案は?
ありがとう