你如何在特定的$ location.url()上运行一个函数?

时间:2014-02-11 03:11:58

标签: javascript angularjs

当用户点击新视图和位置/视图时,我想更改页面内容的部分。我说一些,因为如果我要更改所有内容,我会知道使用routeProvider并加载新模板。

因此,当$ location.url()更改为'dash / new'时,如何才能使以下功能起作用?

$scope.currentRoute = $location.url();

if currentRoute == 'dash/my' {
    console.log('go!')
}

在Angular JS中根据$ location.url()更改内容是不是很糟糕? The documentation说要“观察和观察”,但如果你不能根据它采取行动那么又有什么选择呢?

3 个答案:

答案 0 :(得分:1)

查看$route documentation。它包含您可以使用的$routeChangeStart$routeChangeSuccess等事件。在您的控制器中订阅这些事件并执行必要的逻辑。

答案 1 :(得分:1)

我希望这会对你有所帮助:

 $rootScope.$on("$routeChangeStart", function(event, next, current) {
                // no logged user, we should be going to #login
                if (next.$$route.originalPath == "/login") {
                   // say hello when start change view to #login                    
               } 

        });

如果你在app.run方法中使用它,也许没问题。 如果你想在routeChanges之后处理,$ rootScope。$ on(“$ routeChangeStart”,function(event,next,current)

答案 2 :(得分:0)

您是否查看了$watch上的角度文档?

这是一个主页

的例子
scope.$watch('name', function() {
 scope.greeting = scope.salutation + ' ' + scope.name + '!';
}); // initialize the watch

为什么你不能在$ location.url上做到这一点?