【发布时间】:2021-09-03 16:33:13
【问题描述】:
我正在使用 angular+ionic 构建一个应用程序,该应用程序在底部使用经典的三按钮菜单,其中包含三个离子选项卡。当用户单击选项卡时,该模板会通过 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() 函数被调用得很好,但只是在用户第一次打开视图/选项卡时。每当用户打开该视图或选项卡时,我想调用一个函数(以更新地理位置)。
实现它的正确方法是什么?
【问题讨论】:
-
试试 {{doSomething()}} ?
-
问题不在于 doSomething() 因为它启动得很好,只是它不会触发两次。视图第一次打开时运行良好,第二次似乎只是在加载缓存视图之类的?
-
ng-init 只调用该函数一次。您可以在局部视图中调用 ng-controller="doSomething()" 或 {{doSomething()}},并且每当调用 router/partial 时都会触发函数。
-
在您的配置状态下,将您的缓存设置为 false。看看我的回答。