1

Angular の初心者で、既存のコード ベース内で作業しています。

基本的に、ルート ドキュメント (index.html) 内に存在する要素があり、Angular ライブラリが読み込まれる前に html に既に存在します。このため、ng-click ディレクティブは登録されていません。

問題の要素への参照をAngularに渡し、それを独自の要素として登録させる簡単な方法はありますか?

サンプル コード (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>

ng-click が正しいメソッドにアクセスできるように、Angular にコントローラーを使用するように指示します。

これが問題でない場合は、実行中の (またはそうでない) 例を jsfiddle に追加する価値があるかもしれません。

于 2013-10-10T02:30:48.470 に答える