【发布时间】:2016-10-19 22:39:09
【问题描述】:
我想使用 $location.path() 方法返回 URL 路径,这样我就可以在 ng-hide 指令中编写一些条件语句。我在控制器中创建了以下内容:
$scope.pathLocation = $location.path();
然后我在我的 html 中插入了 {{pathLocation}} 以确保它返回正确的路径,它就是。当我加载不同的视图时,问题就来了。 pathLocation 不会更新。如果我在新页面视图上手动刷新我的浏览器,它确实如此。 `
这是我的代码的缩写版本: 控制器:
(function(){
var amApp = angular.module('amApp', ['ngRoute', 'ngCookies','ngAnimate' ]);
amApp.controller('WelcomeController', ['$scope', '$location', function WelcomeController($scope, $location) {
$scope.pathLocation = $location.path();
}]);
})();
这是 HTML:
<html lang="en" ng-app="amApp">
<body ng-controller="WelcomeController as welcome">
<nav>menu's here to different views in SPA</nav>
{{pathLocation}}
<div ng-view></div>
</body>
【问题讨论】:
-
如何加载不同的视图?如果您使用
$location.path(newpath),它应该可以工作,但如果您使用任何其他仅加载视图的方法,那么您可能还需要设置位置。 (即加载视图不等于更改位置) -
当您只在一个地方分配值时,为什么会期望它神奇地更新?听起来你想在某个事件上分配
pathLocation,也许是$locationChangeSuccess