Dav*_*ver 7 angularjs angular-ui-router
当状态参数发生变化时,更新ui-router视图的正确方法是什么?
例如,如果我有一个状态:
.state("page.view", {
url: "/pages/:slug",
views: {
"": {
controller: "PageCtrl",
templateUrl: "page-view.html",
},
},
})
Run Code Online (Sandbox Code Playgroud)
和(不正确的)控制器看起来像这样:
.controller("PageCtrl", function($scope, $state) {
$scope.page = loadPageFromSlug($state.params.slug);
})
Run Code Online (Sandbox Code Playgroud)
如何$scope.page在$state.slug更改时正确加载新内容?
请注意,当从页面移动到另一个页面时,上述操作无效,因为控制器仅在第一页加载时运行一次.
Myk*_*Myk 10
我会做这样的事情:
.controller("PageCtrl", function($scope, $state) {
$scope.$on("$stateChangeSuccess", function updatePage() {
$scope.page = $state.params.slug;
});
});
Run Code Online (Sandbox Code Playgroud)
如果你找到一个更好的方法,我会很好奇 - 可能有一些方法可以看到状态slug的价值,但这很干净,清楚地表达了你正在注意的是什么.
| 归档时间: |
|
| 查看次数: |
8724 次 |
| 最近记录: |