2

我的问题是,如果您处于相同状态,我们可以在 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>

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

谢谢

4

4 回答 4

7

将属性添加到元素

ui-sref=""ui-sref-opts="{reload:true}"

例子:

<a ui-sref-opts="{reload:true}" ui-sref="app.post.applicants">Applicants</a>
于 2015-12-15T19:58:41.280 回答
1

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

于 2015-12-15T20:02:19.133 回答
0

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

于 2014-07-07T00:41:48.577 回答
0

我有这个类似的问题,我用两种简单的方式解决了这个问题......

首先,我在相关控制器中编写了一个函数(我的状态是“收件箱”,您可以使用自己的 ui-state):

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

第二次调用这个函数来锚定标签:

<a ng-click="reload()">Inbox</a>

希望它会有所帮助。:)

于 2014-09-04T22:02:14.997 回答