我想知道如何强制淘汰绑定来刷新它的值。通常我们使用一个 observable,这样当 observable 改变时绑定可以自动发生。但就我而言,我创建了一个自定义绑定:
if (!ko.bindingHandlers.asyncHtml) {
ko.bindingHandlers.asyncHtml = {
init: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
var parameters = value.params.concat([function (data) {
$(element).html(data);
} ]);
parameters.concat([function (data) {
$(element).html('Unable to retrieve html.');
} ]);
value.source.apply(null, parameters);
}
}
}
这样一来,执行异步 JSON 调用的函数可以在调用完成后更新相应的元素(使用返回的 HTML)。元素,在本例中为 DIV,如下所示:
<div id="myDiv" data-bind="asyncHtml: {source: getHtml, params: [myId()]}">
我的问题是,此页面上的另一个功能可以更改需要更新myDiv的数据库值。我可能可以找到一种复杂的方法来纠正这个问题,但我想知道是否有一种更简单的方法可以强制重新应用绑定?
注意:getHtml 是我的视图模型上的一个函数,它执行 JSON 调用来检索 HTML。
谢谢