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);
基本的に、ユーザーがタブをクリックすると、現在アクティブなタブであるモデル(最終的にはデータベース)を更新する必要があります。私が持っていた最初の方法は、オブジェクトを削除してそれを配列に戻すことでしたが、pushを押して配列の最後に追加します。これは必要ありません。助けてくれてありがとう。
。私がしたいのは、observableArray内のプロパティを変更することだけです。これは、オブジェクトに既にプロパティがある場合、データベースに情報を書き込むときに、これを簡単にします。あなたはそれを持っている方法私は完全に別のオブジェクトをシリアル化し、IDを取得し、それを別のPOSTとして渡して更新する必要があります。ありがとう。 –
この場合の 'activeTab'は、observableArrayと同じ' line'オブジェクトへの参照に過ぎません。だから、まったく違うものではありません。 –