我想知道如何强制淘汰赛的绑定来刷新它的价值。通常我们使用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是我的viewmodel上执行JSON调用来检索HTML的函数。
感谢
感谢您的输入,HTML会有所不同,因为在加载html之后,数据库中的某些值已更改,因此我想“刷新”html。我会看看我是否可以找到一种方法来使用可观察值来存储您所建议的html。谢谢。 –
感谢您的建议。我最终为html创建了一个observable。然后,在异步JSON调用的成功处理程序中,我设置了observable的值。问题解决了:)谢谢! –