【问题标题】:Two way binding on attribute, knockout.js属性的两种方式绑定,knockout.js
【发布时间】:2014-03-13 09:47:06
【问题描述】:

我有一个带有数据状态属性的按钮,该属性绑定到视图模型中的可观察属性。当我单击按钮时,数据状态属性会更改。但它不影响视图模型。如果我想用新值更新视图模型怎么办?

<button id="changeStatus" data-status="0" data-bind="attr: {'data-status', Status}" />

$("#changeStatus").attr("data-status",1);

【问题讨论】:

  • 请贴一些代码!按钮单击如何更改数据状态?您的数据状态是否与可观察到的淘汰赛绑定?
  • 在我的第一篇文章中添加了一些代码。

标签: javascript html knockout.js


【解决方案1】:

使用 KO 时,想法是更改 viewModel,然后更改演示文稿。 因此,当用户单击按钮时,您应该更改 VM:

如果你的虚拟机看起来像这样:

var vm = function () {
var self = this;
self.status=ko.observable(false);
self.toggleStatus=function(){ self.status(!self.status()); } 

}

您的 html 应如下所示:

<button id="changeStatus" data-bind="click: toggleStatus" />

如果你有几个按钮,你可以改变函数来获取obj:

var vm = function () {
var self = this;
self.status=ko.observable(false);
self.flag=ko.observable(false);
self.toggleStatus=function(data,event,obj){ self[obj](!self[obj]()); } 

}

<button data-bind="click: function(d,e){ togglebutton(d,e,'status');}" />
<button data-bind="click: function(d,e){ togglebutton(d,e,'flag');}" />

如果您需要更多信息,请告诉我

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-31
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 2016-02-27
    • 2017-09-05
    相关资源
    最近更新 更多