gpt4 book ai didi

javascript - 链接点击不重新加载 Controller

转载 作者:行者123 更新时间:2023-11-29 10:39:54 25 4
gpt4 key购买 nike

我有一个 Ionic 应用程序,我希望 Controller 在用户访问选项卡时重新加载。我这里有以下链接...

<ion-tab icon-off="ion-ios-person-outline" icon-on="ion-ios-person" ui-sref="tab.profile({reload: true})">
<ion-nav-view name="tab-profile"></ion-nav-view>
</ion-tab>

如果我访问选项卡链接一次, Controller 就会加载(很明显)。如果我离开页面并再次单击相同的链接,页面不会重新加载。我通过将 console.log 注入(inject) Controller 文件来检测此页面重新加载的方式。

angular.module('coolsite.user')

.controller('ProfileController', profileController)

profileController.$inject = [];

function profileController( ) {
var vm = this;
console.log("activated");
}

每次用户单击链接时如何重新加载 Controller ?

最佳答案

您应该使用transitionTo 来重新加载您的 Controller 和路由。

标记

<ion-tab icon-off="ion-ios-person-outline" icon-on="ion-ios-person" ng-click="vm.redirect('tab.profile')">
<ion-nav-view name="tab-profile"></ion-nav-view>
</ion-tab>

Controller

vm.redirect = function(stateName){
$state.transitionTo(stateName, {} , {
reload: true,
inherit: false,
notify: true
});
}

更新

虽然它与 angular-ui-router 无关,但它与 ionic-view 特别相关,它们默认被缓存。您只需提及 cache: false 即可按状态禁用那些缓存。

代码

.state('tab.profile', {
url: '/profile',
views: {
'tab-profile': {
templateUrl: 'templates/tabs/profile.html',
controller: 'ProfileController as profile',
reload: true
}
},
cache: false
})

还有两种替代方法可以实现这一点,您可以在 this answer 中找到它只有我给出更好的解释

关于javascript - 链接点击不重新加载 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31103716/

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