gpt4 book ai didi

twitter-bootstrap - 当我使用绑定(bind)处理程序时,Bootstrap Modal 仅显示一次

转载 作者:行者123 更新时间:2023-12-03 00:40:25 25 4
gpt4 key购买 nike

JSFiddle:http://jsfiddle.net/PTSkR/177/

期望的行为:当我单击关闭或 x 按钮时,模式会关闭,但如果单击“显示”,我仍然可以再次打开它。

发生了什么:模式关闭一次,然后再也不会打开。

代码:

ko.bindingHandlers.showModal = {
init: function (element, valueAccessor) {
},
update: function (element, valueAccessor) {
var value = valueAccessor();
if (ko.utils.unwrapObservable(value)) {
$(element).modal('show');
// this is to focus input field inside dialog
$("input", element).focus();
}
else {
$(element).modal('hide');
}
}
};

最佳答案

您需要确保处理模态的hidden事件,以便您可以清除可观察的内容。然后,下次您将其设置为 true 时,它将通知所有订阅者,因为它实际上发生了更改(可观察量在其值设置为相同值时不会通知)。

在你的 init 中是这样的:

    init: function (element, valueAccessor) {
$(element).on("hidden", function() {
valueAccessor()(false);
});
},

如有必要,您可以使用 ko.isWriteableObservable 来确定传递到绑定(bind)的值是否实际上是您可以写入的可观察值。

关于twitter-bootstrap - 当我使用绑定(bind)处理程序时,Bootstrap Modal 仅显示一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18879548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com