一旦我改变输入值,我的主模型($ data.name)就不会更新。
提前致谢
一些观点
<td data-bind="editableLabel: { name: $data.name }"></td>
小部件的视图
<span data-bind="text: settings.name, click: edit, visible: !settings.inEditMode"></span>
<div class="input-group" data-bind="visible: settings.inEditMode">
<input class="form-control" data-bind="value: settings.name" />
<span class="input-group-btn">
<button class="btn btn-success" type="button" data-bind="click: save"><span class="glyphicon glyphicon-ok"></span></button>
<button class="btn btn-danger" type="button" data-bind="click: reset"><span class="glyphicon glyphicon-remove"></span></button>
</span>
</div>
widget的viewmodel
define(['context/context'], function (context) {
var ctor = function () { };
ctor.prototype.activate = function (settings) {
this.settings = settings;
this.settings.inEditMode = false;
};
ctor.prototype.edit = function () {
this.settings.inEditMode = true;
};
ctor.prototype.save = function () {
this.settings.inEditMode = false;
context.save();
};
ctor.prototype.reset = function () {
this.settings.inEditMode = false;
};
return ctor;
});
答案 0 :(得分:0)
在以下代码行中,您将对当前VM(name
属性)的属性的引用传递给窗口小部件:
<td data-bind="editableLabel: { name: $data.name }"></td>
我怀疑您传递给窗口小部件的属性name
不是可观察的。如果它不是,那么您只是将引用传递给只包含一个值的属性,因此如果它被更新,它将不会触发任何更改事件。