ノックアウトマッパーを使用してマップし、そこから観察可能なプロパティを作成するビューモデルがあります。
var viewModel= {
"Name": "Josh",
"Position": "Developer",
"PersonalInfo": [{
"CashierMail": "Test@testin.com",
"Phone": "1234",
}]
}
var myViewModel = ko.mapping.fromJS(viewModel);
私は次のhtmlを持っています:
<div>
The name is <span data-bind="text: Name"></span>
<div id="info">
Mail is <span data-bind="text: CashierMail"></span>
<br>
Position is <span data-bind="text: Position"></span>
<br>
Phone is <span data-bind="text: Phone"></span>
</div>
</div>
これは、myViewModelからのバインディングを1つだけ使用した元のコードであり、機能します。
http://jsfiddle.net/KHFn8/837/
私が達成したいのは、IDが「info」のdiv内のフィールドに、PersonalInfoの監視可能な配列からのデータを入力することです。言い換えると、if<div id="info">
がコンポーネントであり、独自のデータソースが入力されます。
だから私はこのようなことを試みます:
ko.applyBindings(myViewModel);
ko.applyBindings(myViewModel.PersonalInfo[0], document.getElementById("info"));
しかし、それは機能しません。
しかし、私は上記のようなことをしたいと思います。動作していないコードは次のとおりです。
http://jsfiddle.net/KHFn8/833/
私は私の場合に似ているこのトピックを読みましたが、それでもそれを機能させることができませんでした:
Knockout.js ko.applyBindings()階層バインディング
私はjavascriptとノックアウトにかなり慣れていないので、コードの動作に関するヘルプをいただければ幸いです。お手数をおかけしますが、よろしくお願いいたします。