【问题标题】:ui-router reload single view in multiple views, is it possible?ui-router 在多个视图中重新加载单个视图,可以吗?
【发布时间】:2014-11-24 22:05:30
【问题描述】:

处于具有多个命名视图的状态。每个视图都有自己的控制器和解析。是否可以在状态中重新加载单个视图? $state.reload 将重新加载整个状态,包括所有视图。

【问题讨论】:

  • 不,没有。你的用例是什么?
  • 假设我有一个下拉列表,它还可以作为选择您要编辑的每个用户的一种方式。它有一个控制器并显示用户的姓名。假设有人编辑他们的名字并保存到 repo,我希望信息反映在下拉列表中。在这种情况下,我想刷新包含下拉列表的视图,以便在名称有更新时从服务器中提取。
  • 所以你必须使用你的控制器 fn 去检索值,把它们放在 $scope 上,然后让下拉菜单从 $scope 中读取?

标签: angularjs angular-ui angular-ui-router


【解决方案1】:

有一个documentation about ui-view

 <div ui-view="main"></div>

 $stateProvider.state("main", {
    views: {
    "main": {
    template: "main.html"
  }
 }    
});

此代码块将加载您的视图;

 $state.go("main", {}, {reload: true});

这可以在视图的控制器中触发;

【讨论】:

  • 这将重新加载“主”状态。碰巧你的视图+状态名称是相同的'main'。
【解决方案2】:

不,不可能重新加载单个视图并让其他视图保持原样。

如果你需要的话,你可以只重新加载当前状态。重新加载当前状态,并且只加载当前状态(键是 reload 参数)。

$state.transitionTo($state.current, $stateParams, {
 reload: $state.current.name, inherit: false, notify: true
});

【讨论】:

  • 单字答案将是适当的:) ...“否”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-24
  • 1970-01-01
  • 2015-10-11
  • 2014-04-06
相关资源
最近更新 更多