4

コントローラーからデータを取得し、それをディレクティブ内で使用する方法は問題ありません。しかし、ディレクティブからデータを取得してコントローラーで使用する必要がある場合は、このような状況に陥ります。

例:

私のコントローラー:

function MyController($scope, $location, myDirective) {
    "use strict";

    // here i need use scope.importantValue and create() method from directive

}

私の指示:

        .directive("myDirective", function() {
"use strict";
return {
    restrict: 'A',
    template: '<div></div>',
    replace: true,
    scope: {
        data: '=',
    },
    link: function(scope, elm) {
        scope.importantValue = "value";

        function create() {
            console.log("Directive works...");
        }

};
})

コントローラー内のディレクティブから変数または/およびメソッドを使用するにはどうすればよいですか?

4

1 に答える 1

9

これを実現する最も簡単な方法は、コントローラーとディレクティブの両方をサービスから取得importantValueおよび取得create()することです。

angular.module(/* Your module */).service('sharedData', function () {
    return {
        importantValue: "value",
        create: function () {
            console.log("Directive works...");
        }
    };
});

sharedDataこれで、ディレクティブとコントローラーに挿入して、どちらの場所からでもアクセスできるようimportantValueになりました。create()

于 2013-05-10T14:47:37.593 に答える