Javascript 敲除绑定处理程序未定义错误
我有一个表和一些角色用户 我想有一个模态形式弹出时,一些点击添加角色等 此Javascript 敲除绑定处理程序未定义错误,javascript,jquery,twitter-bootstrap,knockout.js,Javascript,Jquery,Twitter Bootstrap,Knockout.js,我有一个表和一些角色用户 我想有一个模态形式弹出时,一些点击添加角色等 此ko.bindingHandlers.modal函数的更新属性似乎有错误: ko.bindingHandlers.modal = { init: function (element, valueAccessor) { $(element).modal({ show: false }).on("hidden", function () { var data = valueAcc
ko.bindingHandlers.modal
函数的更新属性似乎有错误:
ko.bindingHandlers.modal = {
init: function (element, valueAccessor) {
$(element).modal({ show: false }).on("hidden", function () {
var data = valueAccessor();
if (ko.isWriteableObservable(data))
data(null);
});
return ko.bindingHandlers["with"].init.apply(this, arguments);
},
update: function (element, valueAccessor) {
var data = ko.unwrap(valueAccessor());
$(element).modal( data ? "show" : "hide" );
return ko.bindingHandlers["with"].update.apply(this, arguments); // Error on this line
}
};
我不知道为什么会发生这种情况,我从Ryan Niemeyer那里复制了代码
34分钟就到了
这是一个引导模式对话,使用Knockout JS作为绑定库带有绑定的
不再具有更新功能
从init函数使用
ko.applyBindingsToNode(element, { with: valueAccessor() });
更新
ko.bindingHandlers.modal = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
$(element).modal({ show: false }).on("hidden", function () {
var data = valueAccessor();
if (ko.isWriteableObservable(data))
data(null);
});
ko.applyBindingsToNode(element, { with: valueAccessor() }, bindingContext);
return { controlsDescendantBindings: true };
},
update: function (element, valueAccessor) {
var data = ko.unwrap(valueAccessor());
$(element).modal( data ? "show" : "hide" );;
}
};
@No1_Melman这是9个月前的版本,可能与您使用的版本不一样好吧,那么在返回之前,这一行去了哪里?是的-在最近的版本中删除了带绑定的更新功能(更改在KO 3.1中)。在您的情况下,您可以完全从update
处理程序中删除对绑定的update
调用。另一个选项是使用@Anders在init
函数中列出的调用,尽管您希望将上下文作为第三个参数传递(上下文是进入init/update函数的第五个参数),并且希望返回{controlsDescendantBindings:true;
从init
@RPNiemeyer你能帮我编辑JSFIDLE吗,因为我发现很难理解书面文本?谢谢@Anders,我会试试的