[英]What is the proper way to call function outside scope in angular?
我有一个生成URL的函数。 我想在ng-href
内部使用它。 一切都很好,直到我不得不将方法移到$scope
之外。 那行不通了。
请参阅以下示例:
编辑带有注释的新Plunker示例:
https://plnkr.co/edit/z4txeXD1J2PJCfcBNw5C?p=preview
旧链接:
https
:
//plnkr.co/edit/qb9w6A5nCNet2MCynnGH?p=preview
我可以将其与某些技巧配合使用,例如将方法放在根范围内(如示例中所示),但这确实很麻烦。 是否有更好的方法将“方法”“导入”范围?
您可以创建一个执行URL生成并创建ng-href
的directive
(甚至创建锚<a>
)
为什么不直接从外部传递$ window来输入所需的变量,而不是像通常在ng-href内的角度那样使用$ scope? ng =“ {}”使用单个大括号以角度表示表示。
<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';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.