gpt4 book ai didi

knockout.js - 1 View 模型多条路线 : lifecycle

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

我希望有几个不同的路由指向同一个 View / View 模型,我已经设法实现了这一点。

            { route: 'formulation',             moduleId: 'formulation',    title: 'Formulation',       nav: 6 },
{ route: 'fabrication', moduleId: 'test', title: 'Fabrication', nav: 7 },
{ route: 'fabrication/:studyId', moduleId: 'test', title: 'Fabrication' },
{ route: 'characterization', moduleId: 'test', title: 'Characterization', nav: 8 },

但是,我在生命周期方面遇到了一些问题。当散列从一个散列更改为另一个散列时,我想收到通知。例如从制造到表征。理想情况下,我可以只更新几个变量,但我并不反对重建 View / View 模型。问题是你们中的一些人可能知道什么时候将 moduleId 更改为与之前的 moduleId 相同时激活 Hook 不会触发。具体应该怎么处理。谢谢, 卡尔文

最佳答案

我认为最好的办法是覆盖激活器上的 areSameItem(由路由器创建为 activeItem)。在你的应用程序早期的某个地方,尝试这样做:

var routerAreSameItem = router.activeItem.settings.areSameItem;

router.activeItem.settings.areSameItem = function (currentItem, newItem, currentActivationData, newActivationData) {
debugger;
return routerAreSameItem.apply(this, _.toArray(arguments));
};

显然这个特定的实现不会做任何事情;但您应该能够在 areSameItem 方法中提供一些自定义逻辑来区分项目更改。

如果我没记错的话,从该方法返回 false 应该会调用您的 activate 方法。

关于knockout.js - 1 View 模型多条路线 : lifecycle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22077884/

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