1

对 Angular 来说相当新,并且在现有代码库中工作。

基本上,在加载 Angular 库之前,根文档 (index.html) 中已经存在一个元素。因此,未注册 ng-click 指令。

有没有一种简单的方法可以向 Angular 传递对相关元素的引用并将其注册为自己的元素?

示例代码(显然缺少部分,只是为了说明之后的角度加载):

<html>
<body ng-app="allMyCookiesApp">
    <a ng-click="giveGeuisACookie()">GIMME</a>
    <script src="angular.js"></script>
</body>
</html>

当我单击 GIMME 时,我想获得一个 cookie。

4

1 回答 1

1

ng-app一旦角度加载,它将引导其中的所有内容。这包括ng-click在您的示例中编译和链接。所以我认为真正的问题可能在其他地方。

这个例子中最大的遗漏是任何控制器。我希望您缺少一个控制器,该控制器可以将giveGeuisACookie方法放在正确的范围内以供ng-click. 例如

angular.module('allMyCookiesApp', [])
  .controller('geuisCtrl', function($scope) {
      $scope.giveGeuisACookie = function() {
          // Cookie time
      };
   });

会为它定义你的模块ng-app并注册一个控制器。这个控制器将把giveGeuisACookie函数添加到它的作用域中。

<html>
    <body ng-app="allMyCookiesApp" ng-controller="geuisCtrl">
        <a ng-click="giveGeuisACookie()">GIMME</a>
        <script src="angular.js"></script>
    </body>
</html>

告诉 angular 使用控制器,以便 ng-click 可以访问正确的方法。

如果这不是问题,则可能值得添加一个带有工作(或不工作)示例的 jsfiddle。

于 2013-10-10T02:30:48.470 回答