我对 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 对象如此庞大和复杂(这显然不是)怎么办?是否可以使用一些递归功能来遍历每个对象的嵌套对象以使它们都可观察?