需求: 自定义bindings,使其可调用swfobject更新正在播放的flash的值
查看knockoutjs的官方可进行自定义扩展 文档位置
于是尝试:
(function(){
ko.bindingHandlers['flash'] = {
'update': function(element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
swfobject.embedSWF(value, element.id, "200", "120", "9.0.0");
}
};
})();
jade代码如下:
div#aa(data-bind='flash : swfurl')
js代码:
var viewModel = {
swfurl: ko.observable("/flashs/1.swf")
};
ko.applyBindings(viewModel);
但是除了第一次赋值以外,当swfurl值改变时 (如调用如下方法时)并不会触发'update'的逻辑
function gos1(){
viewModel.swfurl('/flashs/1.swf');
}
求救