在角度ui-router中处于相同状态时重新加载状态

时间:2014-07-04 18:35:14

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

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

答案 0 :(得分:7)

使用

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

示例:

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

答案 1 :(得分:1)

使用ng-click并使用$ state.go

编写控制器功能

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

首先我将一个函数写入相关的控制器(我的状态是'收件箱'你可以使用你自己的ui状态):

  

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

再次调用此函数来锚定标记:

  

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

希望它会有所帮助。 :)