gpt4 book ai didi

durandaljs 子路由器停用事件

转载 作者:行者123 更新时间:2023-12-02 01:57:29 25 4
gpt4 key购买 nike

如何在父路由更改时触发停用事件。例如在“HTML 示例”中,当主从页面处于事件状态时,将 View 更改为另一个。如何在此处强制对话“你想离开......”?

谢谢弗拉基米尔。

更新:

带有替换对话框的 HTML 示例代码

project.js

define(['durandal/system', 'durandal/app'], function (system, app) {
var ctor = function (name, description) {
this.name = name;
this.description = description;
};

ctor.prototype.canActivate = function () {
return true; //!!! CHANGED!!!
};

ctor.prototype.activate = function () {
system.log('Model Activating', this);
};

ctor.prototype.canDeactivate = function () {
return false; //!!! CHANGED!!!
};

ctor.prototype.deactivate = function () {
system.log('Model Deactivating', this);
};

return ctor;
});

现在您不能使用选择控件更改详细 View 。但可以通过导航面板轻松更改整个模块。

最佳答案

您正在寻找的是 canDeactivate 属性。您可以使用对话框插件来显示对话框。如果您的 canDeactivate 函数返回 true,则 View 将停用。如果它返回 false, View 将保留。

更新

路由器中有一个错误,即 wontfix,当父 viewModel 停用/导航离开时,子 viewModel 未正确停用。看这里:https://github.com/BlueSpire/Durandal/issues/570

http://durandaljs.com/documentation/Using-Activators/ http://durandaljs.com/documentation/Hooking-Lifecycle-Callbacks/

关于durandaljs 子路由器停用事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19154446/

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