AngularJS向函数或指令发送window.location

AngularJS send window.location to a function or a directive

本文关键字:window location 指令 函数 AngularJS      更新时间:2023-09-26

我正试图创建一个"Back"按钮作为函数或指令。点击后,它会调用一个函数,在将用户重定向到url之前,该函数有几件事要做。通常,在纯JS中,我会有一个简单的div和一个onclick函数,我会将URL传递给它,然后该函数会完成它的任务,然后创建一个window.location.href=URL,就可以了。在angular中,我试图发送的URL部分是硬编码的,部分来自ng模型:url="#/clients/editer/{{client._id}}"

当试图使用一个简单的函数时,我会将其作为字符串传递给它,但我的函数并没有将client.id作为字符串获取,尽管firefox的HTML检查器说它是这样做的。但如果我console.log函数得到的URL,它会说"#/clients/editer/{{client._id}}"代替"#/clients/editer/56684b4fe7b59ff020b85590"

当尝试使用指令而不是函数时,作为这一切的新手,我不明白如何将URL传递给指令。由于URL可能会从一个模块到另一个模块发生根本性的变化(从"#/clients/editer/{{client._id}}""#/materiel/editer/{{materiel._id}}",我需要将解码后的URL直接传递给指令,然后指令将执行onclick函数

希望有人能帮助我!

我制作了简单的测试代码

js

scope.client._id = 9;
scope.somefunction = function (url){
    console.log(url)
}

Html

<div ng-click="somefunction('#/clients/editer/{{client._id}}')">link</div>

结果:#/clients/editer/{{client_id}}

<div ng-click="somefunction('#/clients/editer/'+ client._id)">link</div>

结果:#/clients/editer/9

这是你想要达到的结果吗?