AngularJS将window.location发送到函数或指令

时间:2015-12-14 14:33:16

标签: javascript angularjs angularjs-directive

我试图创建一个" Back"按钮作为函数或指令。单击它后,它会调用一个函数,在将用户重定向到URL之前有几件事要做。 通常,在纯JS中,我会有一个带有onclick函数的简单div,我将传递给URL,然后函数将执行它的东西,然后创建一个window.location.href = url,它会没问题。 在角度中,我尝试发送的URL是部分硬编码的,部分来自ng模型:url="#/clients/editer/{{client._id}}"

当我尝试使用一个简单的函数时,我将它作为字符串传递给我,我的函数doesent将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函数。

希望有人可以帮助我!

1 个答案:

答案 0 :(得分:1)

我制作了简单的测试代码

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

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