【发布时间】:2016-12-13 13:20:24
【问题描述】:
希望这不是一个坏习惯,但我试图在my previous question 的上下文中理解 Knockout observables。
我想用“红花”或“蓝天”更新视图,具体取决于单击的按钮。让我们假设 JSON 是静态的。如何在仅应用一次绑定的同时使用可观察对象更新视图?
小提琴:
https://jsfiddle.net/ft8a6jbk/3/
HTML:
<button class="blue">Blue</button>
<button class="red">Red</button>
<div data-bind="text: name"></div>
<div data-bind="text: things()[0].item1"></div>
<script>
ko.applyBindings(viewModel);
</script>
JS:
var data = {
"colors": [{
"name": "blue",
"things": [{
"item1": "sky",
"item2": "ocean",
}, ]
}, {
"name": "red",
"things": [{
"item1": "flower",
"item2": "sun",
}, ]
}, ]
};
$('.blue').click(function() {
var viewModel = ko.mapping.fromJS(data.colors[0]);
});
$('.red').click(function() {
var viewModel = ko.mapping.fromJS(data.colors[1]);
});
【问题讨论】:
标签: javascript jquery arrays json knockout.js