当前位置: 首页 > 面试题库 >

每当打开/显示视图时,运行控制器功能

陆绪
2023-03-14
问题内容

我正在构建一个带有angular + ionic的应用程序,该应用程序在底部使用一个经典的三按钮菜单,其中包含三个ion-
tabs。用户单击选项卡时,该模板通过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){ ... })

您可以在此处找到更多详细信息:状态更改事件。



 类似资料:
  • 场景:用户点击视图控制器上的按钮。视图控制器是导航堆栈中的最顶层(显然)。tap调用在另一个类上调用的实用程序类方法。那里发生了一件坏事,我想在控件返回视图控制器之前在那里显示一个警报。 这在中是可能的(但可能不太合适)。 在这种情况下,您如何呈现一个,就在中?

  • 问题内容: 我有一个应用程序,它是一个单视图应用程序。我有一个从根视图控制器链接到所有子控制器的导航控制器。 在每个子控制器中,我都有一个注销按钮。我想知道是否可以有一个我可以调用的函数,该函数将关闭沿途打开的所有控制器,无论用户按下注销时当前打开了哪个控制器? 我的基本开始: 我正在寻找执行此任务的内存效率最高的方法。我将注销功能放在单独的utils文件中,但是之后我将无法使用self。而且我还

  • 比方说,我有一个名为VC2的视图控制器类的实例。在VC2中,有一个“cancel”(取消)按钮会自动关闭。但当“取消”按钮触发时,我无法检测或接收任何回调。VC2是一个黑匣子。 视图控制器(称为VC1)将使用呈现视图控制器:动画:完成方法呈现VC2。 VC1在VC2被解除时必须检测哪些选项? 编辑:从@rory mckinnel的评论和@NicolasMiari的回答中,我尝试了以下方法: 在VC

  • 我有一个导航视图控制器,它会在操作时向选项卡栏视图控制器发送一个序列。因此,选项卡式视图控制器继承了导航栏。我正在尝试将标题应用于连接到选项卡栏视图控制器的其中一个视图控制器,但通过代码设置标题对我不起作用。有人知道为什么会这样吗? 这是我的故事板的图片: 带有注销按钮的视图控制器是我试图在导航条(代码)中设置标题的地方: 导航控制器中嵌入的视图控制器触发到选项卡栏控制器的顺序:

  • 以下的一段代码相当于定义一个ParameterizableViewController视图控制器的快捷方式,该控制器会立即将一个请求转发(forwards)给一个视图。请确保仅在以下情景下才使用这个类:当控制器除了将视图渲染到响应中外不需要执行任何逻辑时。 以下是一个例子,展示了如何在MVC Java编程配置方式下将所有"/"请求直接转发给名字为"home"的视图: @Configuration

  • 我的故事板是这样安排的。 红色:搜索到... 橙色:嵌入了... 绿色:视图控制器的导航控制器 我想让我的中间选项卡视图(绿色)呈现自己的模式,有点像reddit应用程序如何做它的中间‘张贴到reddit’按钮。当这个中间视图被取消时,将返回到先前打开的原始选项卡。如何才能做到这一点呢?