2

$watch私はディレクティブにいて、ローカルに存在する変数と に存在する変数で$scopeユニオンを実行したいと考えてい$rootScopeます。次のようになります。

myapp.directive('cohnbread',
            ['TEMPLATE_URL', '$rootScope',
    function(TEMPLATE_URL,    $rootScope) {
        return {
            templateUrl: TEMPLATE_URL + "cohnbread.html",
            scope: { odp: '@' },
            link: function(scope, elem, attrs) {
                // here I would like to register a callback to fire 
                // whenever scope.bar or $rootScope.foo fires. Something like:
                $watchBoth('scope.bar', '$rootScope.foo', onBarOrFooChange);
            }
        };
    }]);

これを実現するための回避策はありますか?

より多くの情報を提供するために編集されました。

4

1 に答える 1

1

どちらか一方が変更されたときにコールバックを発生させたいだけの場合は$watch、それぞれに a を設定するだけです。例えば:

scope.$watch('bar', onBarOrFooChange);
scope.$watch('foo', onBarOrFooChange);

または、ディレクティブのスコープが分離されている場合は、次のように$watchfor をセットアップできます。foo

scope.$watch(function() {return $rootScope.foo}, onBarOrFooChange);
于 2012-11-27T15:36:52.983 に答える