gpt4 book ai didi

angularjs - $location.path 在 Angular 指令中不起作用

转载 作者:行者123 更新时间:2023-12-02 23:21:30 25 4
gpt4 key购买 nike

我正在尝试更新$location.path来自 AngularJS 指令内。它没有像我预期的那样工作,即更新浏览器窗口中显示的 URL 并在我的页面上显示不同的内容。我的函数肯定会使用正确的值进行调用,如控制台中所示。我认为$location.path可能会产生一些影响,因为当我单击链接时,会调用一些附加函数,这些函数将在新页面上调用,只有新页面永远不会显示。当我使用$location.path时在 Controller 中,它按预期工作,但不在我的指令中。

这是我的指令的 HTML:

<div detail-link="/comments?post={{post.postId}}" ng-click="clickDetailLink()"></div>

这是指令的定义(在 CoffeeScript 中):

directives.directive 'detailLink', ['$location', ($location) ->
return (scope, element, attrs) ->
scope.clickDetailLink = ->
console.log "loading " + scope.detailLinkHref
$location.path scope.detailLinkHref

attrs.$observe 'detailLink', (value) ->
console.log "set detail link to " + value
scope.detailLinkHref = value
]

我知道这里发生了什么......我的$routeProvider设置为处理 /comments但在这里我试图将查询字符串附加到 route 。如果我使用常规<a href="#/comments?post={{post.postId}}"> ,效果很好,但不知何故通过 $location.path 设置相同的路线不管用。这与此代码是否位于 Controller 或指令中无关。

最佳答案

尝试scope.$apply? (注意$)

关于angularjs - $location.path 在 Angular 指令中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17177492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com