Cit*_*rus 16 javascript jquery custom-binding knockout.js
使用以下代码,我希望每次更新viewModel.item observable时都会执行更新函数.我可以看到我的init和更新函数按照预期在页面加载时触发,但是当我单击我的按钮更新observable的值时则不会.
标记:
<button id='addButton'>item++</button>
<br/>
<span>viewModel.item = </span>
<span data-bind='text: $data.item(), bind: viewModel.item'></span>
Run Code Online (Sandbox Code Playgroud)
脚本:
$(document).ready(function() {
$('#addButton').click(function() {
viewModel.item(viewModel.item() + 1);
});
var viewModel = {
item: ko.observable(1)
};
ko.bindingHandlers.bind = {
init: function(element, valueAccessor) {
alert('init');
},
update: function(element, valueAccessor) {
alert('update');
}
};
ko.applyBindings(viewModel);
});
Run Code Online (Sandbox Code Playgroud)
我浏览了一些类似的问题,但没有找到类似的例子.我在这里创建了一个JSFiddle .
Mic*_*est 29
该update每当有约束力的处理程序的功能将运行它访问观测被更新.您的函数不访问任何可观察对象.
这是一个可以使用的更新版本:
ko.bindingHandlers.bind = {
init: function(element, valueAccessor) {
alert('init');
},
update: function(element, valueAccessor) {
ko.unwrap(valueAccessor());
alert('update');
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8513 次 |
| 最近记录: |