AngularJSコントローラー-ディレクティブ->ディレクティブからのコントローラー関数の呼び出し

切る

コントローラとディレクティブ間の機能の可視性について質問があります。コントローラーとディレクティブがあります。ディレクティブは次のようになります

(function() {
'use strict';

angular
    .module('myproject.schedule')
    .directive('dirname', dirname);

function dirname() {
  var directive = {
        restrict: 'A',
        replace: true,
        scope: {
            currentDateScheduler: "=",
            ...
        },
        controller: DirnameController,
        controllerAs: 'vm',
        bindToController: true,
        templateUrl: ... directive.html

私のコントローラーは次のようになります。

(function() {
'use strict';

angular
    .module('myproject.schedule')
    .controller('MyController', MyController);
...

directive.htmlファイルには、コントローラーの機能を呼び出すng-clickがあります。これは正常に機能します

実は今、なぜかわかりませんか?ディレクティブには独自の名前空間があり、コントローラーの機能は... directive.htmlに表示されないと思いました。

どうもありがとうございました!

ベンフェス

コントローラースコープは、コントローラーが宣言されているDOM要素内で子として表示されるすべてのディレクティブで使用できます。例えば

<div ng-controller="ctrl1">
    <dirname></dirnam> <!-- this has access to ctrl1 scope -->
</div>

したがって、別のコントローラー内でディレクティブを使用する場合、そのコントローラースコープにアクセスできます。これは、ディレクティブが宣言したコントローラーに関数が存在しない場合、ng-clickは何もしないことを意味します。

ディレクティブでは、コントローラーを宣言できます。このコントローラーで宣言されたものはすべて、ディレクティブ内の同じ名前のコントローラー関数をオーバーライドします。例えば

angular.module('myApp',[])
.controller('myController',function($scope){
    $scope.clickMe = function(){
       alert('clicked from the controller');
    }
})
.directive('dirname', function(){
    return {
        controller: function($scope){
            $scope.clickMe = function(){ alert('clicked from directive'); };
        },
    };
});

コントローラはネストすることもできます。この場合も、スコープにはトップダウン効果があり、最上位のコントローラーで定義された関数を、子コントローラーで囲まれたdom要素で使用できます。また、この子コントローラーに同じ関数が宣言されている場合、これらは親コントローラーの機能をオーバーライドします。

お役に立てれば

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

親から子へのAngularJS呼び出しディレクティブコントローラー関数

分類Dev

ディレクティブ内のリンクからコントローラー関数を呼び出す

分類Dev

AngularJS:ディレクティブからコントローラー関数を呼び出す

分類Dev

ディレクティブコントローラーからの角度呼び出しコントローラー関数

分類Dev

コントローラからangularjsディレクティブ関数を呼び出す

分類Dev

コントローラangularjsからディレクティブ関数を呼び出す

分類Dev

Angularjsディレクティブ呼び出しコントローラー関数

分類Dev

AngularJSで分離されたスコープのないディレクティブからコントローラー関数を呼び出す

分類Dev

ディレクティブからコントローラー関数を呼び出す方法

分類Dev

分離スコープを使用する場合、ディレクティブからコントローラーの関数を呼び出しますか?

分類Dev

ディレクティブから呼び出されたコントローラーの関数内の空の配列-AngularJS

分類Dev

コントローラからディレクティブ関数を呼び出す方法は?

分類Dev

AngularJS-外部コントローラーでディレクティブ関数を呼び出す

分類Dev

AngularJS-外部コントローラーでディレクティブ関数を呼び出す

分類Dev

AngularJsがディレクティブで別のコントローラーからコントローラーを呼び出す

分類Dev

コントローラangularjs内でカスタムディレクティブ関数を呼び出す

分類Dev

anglejsディレクティブはコントローラー関数を呼び出しません

分類Dev

anglejsディレクティブはコントローラー関数を呼び出しません

分類Dev

anglejsデザイン。別のコントローラーからディレクティブ関数を呼び出す

分類Dev

AngularJSディレクティブから親コントローラーの関数に値を渡す方法

分類Dev

Angular JS:角度ディレクティブでコントローラーからリンク内の関数を呼び出す方法

分類Dev

スコープを持つディレクティブからのAngularJS $ watchコントローラー変数

分類Dev

他のコントローラーからディレクティブコントローラーのメソッドを呼び出す

分類Dev

AngularJS:ディレクティブからコントローラー関数にデータを渡す方法

分類Dev

JS-AngularJS-コントローラーからディレクティブのデータを取得します

分類Dev

Angular-コントローラー関数呼び出しのスコープ変数の更新がディレクティブhtmlに反映されない

分類Dev

ディレクティブからコントローラー関数を呼び出してもスコープは更新されません

分類Dev

javascript関数からディレクティブで定義されたコントローラーのメソッドを呼び出す

分類Dev

親コントローラー関数を呼び出すAngularディレクティブ

Related 関連記事

  1. 1

    親から子へのAngularJS呼び出しディレクティブコントローラー関数

  2. 2

    ディレクティブ内のリンクからコントローラー関数を呼び出す

  3. 3

    AngularJS:ディレクティブからコントローラー関数を呼び出す

  4. 4

    ディレクティブコントローラーからの角度呼び出しコントローラー関数

  5. 5

    コントローラからangularjsディレクティブ関数を呼び出す

  6. 6

    コントローラangularjsからディレクティブ関数を呼び出す

  7. 7

    Angularjsディレクティブ呼び出しコントローラー関数

  8. 8

    AngularJSで分離されたスコープのないディレクティブからコントローラー関数を呼び出す

  9. 9

    ディレクティブからコントローラー関数を呼び出す方法

  10. 10

    分離スコープを使用する場合、ディレクティブからコントローラーの関数を呼び出しますか?

  11. 11

    ディレクティブから呼び出されたコントローラーの関数内の空の配列-AngularJS

  12. 12

    コントローラからディレクティブ関数を呼び出す方法は?

  13. 13

    AngularJS-外部コントローラーでディレクティブ関数を呼び出す

  14. 14

    AngularJS-外部コントローラーでディレクティブ関数を呼び出す

  15. 15

    AngularJsがディレクティブで別のコントローラーからコントローラーを呼び出す

  16. 16

    コントローラangularjs内でカスタムディレクティブ関数を呼び出す

  17. 17

    anglejsディレクティブはコントローラー関数を呼び出しません

  18. 18

    anglejsディレクティブはコントローラー関数を呼び出しません

  19. 19

    anglejsデザイン。別のコントローラーからディレクティブ関数を呼び出す

  20. 20

    AngularJSディレクティブから親コントローラーの関数に値を渡す方法

  21. 21

    Angular JS:角度ディレクティブでコントローラーからリンク内の関数を呼び出す方法

  22. 22

    スコープを持つディレクティブからのAngularJS $ watchコントローラー変数

  23. 23

    他のコントローラーからディレクティブコントローラーのメソッドを呼び出す

  24. 24

    AngularJS:ディレクティブからコントローラー関数にデータを渡す方法

  25. 25

    JS-AngularJS-コントローラーからディレクティブのデータを取得します

  26. 26

    Angular-コントローラー関数呼び出しのスコープ変数の更新がディレクティブhtmlに反映されない

  27. 27

    ディレクティブからコントローラー関数を呼び出してもスコープは更新されません

  28. 28

    javascript関数からディレクティブで定義されたコントローラーのメソッドを呼び出す

  29. 29

    親コントローラー関数を呼び出すAngularディレクティブ

ホットタグ

アーカイブ