我有一个生成URL的函数。我想在ng-href
内使用它。这一切都很好,直到我不得不将方法移到$scope
之外。这不再适用了。
请参阅此plunker示例:
编辑带有评论的新Plunker示例:
https://plnkr.co/edit/z4txeXD1J2PJCfcBNw5C?p=preview
旧链接: https://plnkr.co/edit/qb9w6A5nCNet2MCynnGH?p=preview
我可以使用它来处理一些黑客攻击,例如将方法放在根范围内(如示例中所示),但这确实很笨拙。有没有更好的方法将方法“导入”范围?
答案 0 :(得分:1)
您可以创建一个directive
来生成网址并创建ng-href
(甚至创建一个锚<a>
)
答案 1 :(得分:0)
为什么不从外部传入你需要的变量的$ window窗口,而只是像在ng-href中的角度一样使用$ scope? ng =“{}”使用angular中的单个花括号指的是表达式。
<a ng-href="query">$scope.query</a>
</div>
<script>
function getUrlGlobalScope(q) {
return 'some_url_global?q=' + q;
}
(function(angular) {
'use strict';
angular.module('myApp', [])
.run(function($rootScope) {
$rootScope.getUrlRootScope = getUrlGlobalScope;
})
.controller('MyController', ['$scope','$window', function($scope,$window) {
$scope.getUrlInScope = function(q) { return 'some_url?q=' + q; }
$scope.query = 'query';