加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 在打开/显示视图时运行控制器函数

发布时间:2020-12-17 09:05:11 所属栏目:安全 来源:网络整理
导读:我正在建立一个应用程序与角离子使用经典的三个按钮菜单底部有三个离子标签。当用户单击选项卡时,该模板将通过ui-router打开。 我有这样的状态: $stateProvider .state('other',{ url: "/other",abstract: true,templateUrl: "templates/other/other.html"
我正在建立一个应用程序与角离子使用经典的三个按钮菜单底部有三个离子标签。当用户单击选项卡时,该模板将通过ui-router打开。

我有这样的状态:

$stateProvider
  .state('other',{
    url: "/other",abstract: true,templateUrl: "templates/other/other.html"
})

在模板中我做的像:

<ion-nav-view name="other" ng-init="doSomething()"></ion-nav-view>

我知道我可以写我的控制器中的doSomething()函数,并手动调用它。这给了我相同的问题。我似乎不知道如何调用doSomething()函数多次,当有人打开该视图。

现在,doSomething()函数调用很好,但只有第一次视图/标签页被用户打开。每当用户打开该视图或选项卡时,我想调用一个函数(更新地理位置)。

什么是正确的方法来实现呢?

感谢您的帮助!

如果您已为视图分配了某个控制器,则每次加载视图时都将调用控制器。在这种情况下,可以在控制器调用时立即执行一些代码,例如:
<ion-nav-view ng-controller="indexController" name="other" ng-init="doSomething()"></ion-nav-view>

和在你的控制器:

app.controller('indexController',function($scope) {
    /*
        Write some code directly over here without any function,and it will be executed every time your view loads.
        Something like this:
    */
    $scope.xyz = 1;
});

编辑:您可以尝试跟踪状态更改,然后在路由更改并访问某个路由时执行一些代码,例如:

$rootScope.$on('$stateChangeSuccess',function(event,toState,toParams,fromState,fromParams){ ... })

您可以在这里找到更多详细信息:State Change Events。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读