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

ui.router不重新加载控制器

牧飞鹏
2023-03-14
问题内容

我正在使用Ionic Framework开发应用程序,并且有多个视图。路由名称是 app.view1app.view2
。我使用控制器切换到下一个视图$state.go("app.view2"),当我单击返回时,app.view1的控制器不再执行,这在我的应用程序中非常重要。

请告诉我如何在每次路由到控制器时执行它。


问题答案:

Ionic缓存视图以提高性能。它使用的功能ng-router

Ionic最多可以缓存10个视图,不仅可以配置它,而且应用程序还可以明确声明应该和不应该缓存哪些视图。

http://ionicframework.com/docs/api/directive/ionNavView/

有多种方法可以解决此问题。

选项1

如果希望控制器在每次显示视图时执行,则可以禁用该特定路由的缓存。

$stateProvider.state('myState', {
   cache: false,
   url : '/myUrl',
   templateUrl : 'my-template.html'
})

要么

<ion-view cache-view="false" view-title="My Title!">
  ...
</ion-view>

选项2

您可以禁用所有视图的缓存。甚至控制视图的数量。我不知道这是否对您有用。

$ionicConfigProvider.views.maxCache(0);

选项3

我的最爱。您可以使用$ionicView.enter事件。这样可以保证应该在执行视图时执行需要执行的代码。这样就可以区分应该一次执行一次的代码。我想这将对性能产生积极影响。

用法

$scope.$on('$ionicView.enter', function(){
  // Coding
});

祝您好运,编码愉快!



 类似资料:
  • 问题内容: 我有一个抽象的基本模板,可根据用户类型加载导航。这部分适用于初始加载。问题是用户登录或注销后无法重新加载父templateProvider。我在这里尝试了重新加载父模板的解决方案,但是导航模板不受影响。有没有一种方法可以重新加载templateProvider,或者这样做的更好的方法?理想情况下,我不必将导航提供商添加到每个子路线。 路线: 尝试从github问题发出的控制器功能: 问

  • 我在使用spring-boot-devtools时遇到了一个问题,当应用程序启动时,spring boot加载了控制器中定义的所有映射。

  • 问题内容: 我无法通过本地主机或其他方式让ui.router在index.html上加载组件: index.html components.js “ Hello world”加载,当我使$ http通过服务时的数据也加载。但是它不会传递给组件。有什么想法吗? 问题答案: 可从中获取属性(请参阅此处和CHANGELOG.MD-已在中添加),因此不可用。 这是工作的jsFiddle(带有1.0.3-b

  • 我正在使用Ionic Framework和Cordova Sqlite构建一个移动应用程序。我正在离子列表中显示来自sqlite数据库的数据。每个离子列表项都有一个按钮,用于从数据库中删除相应的项。单击按钮,数据将从数据库中删除,但它将继续显示在离子列表中,直到我返回到其他视图并返回到它。我需要立即刷新视图,并从列表中删除该项。而且,我所有的SQL代码都在控制器中,所以我似乎还需要重新加载控制器。

  • 问题内容: 我有一个带有php include的Div Tag,该div用来填充该信息,我想要做的是使它每隔15秒调用一次,以便它可以在那里更新信息,而不必重新加载整个网页。我试图用JavaScript / jQuery做到这一点,但似乎无法正常工作 这是我在搜索一些内容后所拥有的,然后发生的是,它加载了Small.php,但不会每15秒刷新一次或更新信息。 请帮忙! 我应该添加所有应显示的php

  • 我目前正在尝试将类加载到我的应用程序中,这样我就可以过滤掉那些不包含任何test/-方法的类。我希望以后在我的应用程序中运行这些测试。 到目前为止,一切都很好-除了我正在使用的(或者可能是任何)似乎没有实际重新加载位于我的应用程序类路径上的类。 更准确地说,我的应用程序的用户首先选择一些源文件。然后将它们复制到临时位置,并将许多正则表达式匹配/替换对应用于原始源文件的副本。接下来,拷贝被编译,然后