私は Knockoutjs に本当に慣れていません (そして一般的に JavaScript はあまり得意ではありません)、JSON オブジェクトのネストされたすべての可能なオブジェクトをマップして、誰もが観察できるようにしようとしています。ko.mapping.fromJS を使用すると、すべてのオブジェクトとそのオブジェクトが監視可能になるという印象を受けました。しかし、私はそれが起こるのを見ていません。
私が jsfiddle に入れたことは、私が実際に行っていることとはまったく異なりますが、オブジェクトをマップしてから、ネストされた値を HTML スパンにバインドしようとしていることを示しています。
http://jsfiddle.net/Eves/L5sgW/32/ <-編集:これを適切なjsfiddleに更新しました
HTML
<p> <span>Name:</span>
<span data-bind="text: IntroData.Name))"></span>
</p>
JS
$(function () {
var ViewModel = function (data) {
var me = this;
ko.mapping.fromJS(data, me);
return me;
};
var stuff = {
IntroData: {
Name: 'Test'
}
};
window.viewModel = ko.mapping.fromJS(new ViewModel(stuff));
ko.applyBindings(window.viewModel);
});
ネストされたオブジェクトを監視可能にするためにマッピングオプションを使用する必要があるだけですか? もしそうなら、JSON オブジェクトが非常に広大で複雑な場合はどうなるでしょうか (これは明らかにそうではありません)。いくつかの再帰機能を使用して、各オブジェクトのネストされたオブジェクトをループし、それらをすべて観察可能にすることはできますか?