繁体   English   中英

在angular范围外调用函数的正确方法是什么?

[英]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-hrefdirective (甚至创建锚<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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM