5

私はAngularJSの使用にかなり慣れていません。私がやろうとしているのは、ディレクティブを作成し、その中の親スコープから関数を呼び出すことです。私はこれを達成することができますが、私が理解できないように見えるのは、分離スコープから式を介して親スコープにデータを渡す方法です。Angular開発者ガイドでのこれの説明は少し紛らわしいです。

ディレクティブ:

app.directive('myDir', function() {
    return {
        restrict: 'E',
        template: '<div ng-click="parentFunc(someValue)"><div>', 
        scope: {
           parentProp: '=property',
           parentFunc: '&func'
        },
        link: function(scope, element, attrs) {

        }
    }
});

マークアップ:

<my-dir prop="foo" func="bar(someValue)"></my-dir>

コントローラー:

app.controller('TstCtrl', function($scope) {
    $scope.foo = 'test';
    $scope.bar = function(value) {
       console.log(value);
    };
});

助けてくれてありがとう!

4

1 に答える 1

11

これを行う他の方法があるかもしれませんが、属性に渡されたのと同じパラメーター名を使用して関数にオブジェクトを渡すこのフィドルfuncを参照してください。

    link: function(scope, element, attrs) {
        scope.parentFunc({someValue:'testing'});            
    }

したがって、この場合、属性を呼び出しbar(someValue)たので、リンク関数でfuncオブジェクトを渡します。someValueそれがあなたの分離スコープでリンクされてparentFuncいるものだからです。&func

于 2012-10-26T19:01:14.077 に答える