$state.go() 不会在第一次单击 Button 时调用控制器

$state.go() does not call the controller first time on click of Button

本文关键字:单击 第一次 Button 控制器 调用 go state      更新时间:2023-09-26

我是Ionic Development的新手,面临着一个相当奇怪的问题。

我有两个页面主页和保存模板页面分别与主页Ctrl和保存模板控制。

从我的保存模板页面,我重定向到主页。

问题在于单击保存按钮重定向发生,但首次未调用主页控制器。连续调用 HomeCtrl 的次数。

代码如下:

主页控制:

.controller('HomeCtrl', function($scope, Template) {
  alert("Within Home Controller");
})

保存模板Ctrl :

.controller('SaveTemplateCtrl ', function($scope) {
    $scope.saveTemplate = function(template) {
     //**Logic for Saving the Template
     setTimeout(function() {
       alert("Going to Home Controller");
       $state.go('myapp.home');
    },1200);
   };
 })

建议并帮助我解决这个问题。

提前致谢,:)

如果您的主页是默认页面,当您第一次转到主页时,将执行 HomeCtrl。但是,如果您没有禁用主页缓存,当您从保存模板页面重定向到主页时,由于离子视图缓存机制,HomeCtrl 将不会再次执行。为了提高性能,我们应该尽量不要禁用缓存。如果你每次输入时都需要执行一些函数,也许你可以把它们放在$ionicView.beforeEnter事件处理程序中:

    .controller('HomeCtrl', function($scope, Template) {
      $scope.$on('$ionicView.beforeEnter', function(){
        alert("Within Home Controller");
      });
    })

有关离子视图生命周期的更多信息,请参阅 http://www.gajotres.net/understanding-ionic-view-lifecycle/。希望这对您有所帮助。问候。