2

angular2$rootScopeで 、およびvalueを使用したい。$rootまた、以下のように angular2 で angularjs ディレクティブを変換する方法を混乱させます。

.directive('thisDirective', function () {
    return {
        restrict: 'A',
        link: function (scope, element, attrs) {
            element.on('click', function(evt){
                var getMethods = {
                    get_link:function(){
                        var observer = {
                            override:true,
                            triggerIndex:0,
                            onLink:function(link){
                                scope.$root.getThisVal = false;
                                (scope.$$phase || scope.$digest());}
                        };
                        scope.$root.bitlyUrl = "";
                        scope.$root.modelFlags.share_window = scope.$root.modelFlags.steps_upload = scope.$root.getThisVal = true;                          $('.addthisbtn[datatitle=Email]').trigger('click',observer )
                    },
                    addthis_button:function(){
                        var observer = {
                            override:true,
                            triggerIndex:0
                        };
                        $('.addthis-btn[data-title=Email]').trigger('click',observer )
                    }
                };
                getMethods[attrs['thisDirective']]();
            });
        }
    };
})
4

2 に答える 2

0

@thierry でよく説明されていますが、いくつかのポイントを追加したいと思います...

---よく知られているように、angular2 には $scope および $rootscope 機能がありませんが、これの代わりに、アプリ全体で使用されるサービス変数を使用したい場合は、ブートストラップ時にその変数/サービスを提供できます。アプリの。この方法を使用すると、このようなインポートなしでアプリのどこでもサービスを利用できます。

bootstrap(App,[ROUTER_PROVIDERS, HTTP_PROVIDERS, GlobalService, provide(LocationStrategy,{useClass:HashLocationStrategy})]);

ここでは ROUTER_PROVIDERS のように、またはブートストラップで提供する Globalservice をどこでも使用できます。

---ディレクティブについて言えば、ここで説明されている angular2 には 3 種類のディレクティブがあります。詳細については、https://angular.io/docs/ts/latest/guide/attribute-directives.htmlをご覧ください。

于 2016-01-09T19:37:41.563 に答える