【问题标题】:reload state when you are on same state in angular ui-router当您在角度 ui-router 中处于相同状态时重新加载状态
【发布时间】:2014-07-04 18:35:14
【问题描述】:

我的问题是,如果您处于相同状态,我们能否在 ui-router 中重新加载视图。 检查我的代码`http://plnkr.co/edit/MA7CuyH2RFrlaoAgBYog?p=preview

我的 app.js 文件是

var app = angular.module('plunker', ['ui.router']);
app.config(function($stateProvider) {
$stateProvider
  .state("view1", {
    url: "/view1",
    templateUrl: "x.html"
  })
  .state("view2", {
    url: "/view2",
    templateUrl: "y.html"
  })
})
app.controller("MainCtrl",function(){});

索引页是

<body ng-controller="MainCtrl">
<a href="#/view1">Accounts</a>
<a href="#/view2">Dashboard</a>
<div ui-view></div>

现在点击Dashboard链接,您将看到一个文本框。填写任何值。现在再次点击 Dashboard 链接。现在状态应该重新加载并且页面的所有数据都应该重新加载,包括它的控制器。请确保仅ui-router

谢谢

【问题讨论】:

标签: javascript angularjs routes angular-ui-router ngroute


【解决方案1】:

为元素添加属性
ui-sref=""ui-sref-opts="{reload:true}"

示例:

<a ui-sref-opts="{reload:true}" ui-sref="app.post.applicants">Applicants</a>

【讨论】:

    【解决方案2】:

    使用 ng-click 并使用 $state.go 编写控制器函数

    【讨论】:

      【解决方案3】:

      您可以在“ng-click”中捕捉点击并使用 $state 服务实用地转换/重新加载

      【讨论】:

        【解决方案4】:

        我遇到了类似的问题,我通过两种简单的方式解决了这个问题......

        首先我在相关控制器中写了一个函数(我的状态是'inbox'你可以使用你自己的ui-state):

        $scope.reload = function() { $state.go('inbox', null, { reload: true }); }

        第二次调用该函数锚定标签:

        &lt;a ng-click="reload()"&gt;Inbox&lt;/a&gt;

        希望它会有所帮助。 :)

        【讨论】:

          猜你喜欢
          • 2016-02-08
          • 1970-01-01
          • 2016-12-10
          • 2016-01-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-14
          相关资源
          最近更新 更多