0
我试图通过单击来修改对象。这是我的。如何修改点击对象
<form>
<ul class="tabs" data-tabs="tabs" data-bind="template: 'lineTemplate'"></ul>
<div class="pill-content" data-bind="template: 'lineDivTemplate'" ></div>
</form>
<script id="lineTemplate" type="text/html">
{{each(i, line) lines()}}
<li><a data-bind="click: function() { viewModel.setActive(line) }, attr : { href : '#line' + id() }"><span style="font-size: 15px;" data-bind="text : model"/></a></li>
{{/each}}
</script>
var viewModel = {
lines: ko.observableArray([]),
setActive : function(line) {
**//I need to modify this object**
line.activeTab = true;
}
};
$.getJSON("/json/all/lines", { customer_id : customer_id } , function(data) {
ko.mapping.fromJS(data, null, viewModel.lines);
});
ko.applyBindings(viewModel);
基本上当用户点击选项卡时,我需要它来更新模型(最终是数据库),它是当前活动的选项卡。我的第一个方法是删除对象修改它,然后将其推回到数组,但推动将它添加到数组的末尾,这是我不想要的。谢谢你的帮助。
这工作不错,但我正在寻找的东西要简单得多。我想要做的就是修改observableArray中的一个属性。当我将信息写入数据库时,如果我的属性已经存在于对象中,这会更容易。你有它的方式,我将不得不串行化一个完全不同的对象,获得该ID然后将其作为单独的POST传递并更新它。谢谢。 –
这种情况下的'activeTab'只是对observableArray中同一个'line'对象的引用。所以,这不会是一个完全不同的对象。 –