0

これが私の2つのディレクティブです。私は基本的にそれらの間でスコープを共有したいと考えています。ただし、これにより、未定義の$httpエラーが発生します。どこかに置く必要があることはわかってい$httpますが、どこに?

aresAnalytics.directive('market', function($http) {
    return {
        restrict: 'E',
        controller: function ($scope, Data) {
            $scope.data = Data;
        },

        link: function(scope, element, attrs) {
            element.bind('click', function() {

                console.log("A1 " + attrs.market);

                scope.temp = attrs.market;

                $http.get('get_markets').success(function(markets) {
                    Data.markets =  markets;
                });

            })
        }
    }
});

aresAnalytics.directive('events', function($http) {
   return {
       restrict: 'E',

       controller: function ($scope) {
           scope = $scope;
       },


       link: function(scope, element) {

           element.bind('click', function() {
               console.log(scope.temp);
           });

       }
   }
});

HTML:

    <market ng-repeat="market in data.markets" market="{{ market }}">
        {{ market }}
    </market>

また、私はこれをやっている方法だと思います

 $http.get('get_markets').success(function(markets) {
        Data.markets =  markets;
});

は正しくありません。何を置き換えることができますか。

また、Isolate Scope '@' を代わりに使用する必要がありますか? それはどのように見えるでしょうか?

これを読んでくれてありがとう!

4

3 に答える 3

0

わかりませんが、スコープに a を追加し$parentて、常に親スコープを使用する必要がありました。( のscope.$parent代わりに使用するようにscope)。

参照: https://github.com/angular/angular.js/wiki/Understanding-Scopes

于 2013-09-19T16:17:31.657 に答える
0

問題は依存性注入にあります。これを試して:

aresAnalytics.directive('market', ['$http', function($http) {
    // (you code)
}]);

または、コード縮小/醜化を使用しない場合:

aresAnalytics.directive('market', function($http) {
    // (you code)
});
于 2013-09-17T12:36:01.997 に答える
0
于 2013-09-17T12:36:20.387 に答える