2017-07-27 8 views
0

$rootScopeオブジェクトをディレクティブのtemplateUrlに入れることはできますか?
これは私のディレクティブの機能である場合、私は、意味:私はtemplateUrlの関数内で$ rootScopeオブジェクトを得るのですか

function AttributesCard() { 

     return { 
      restrict: "AE", 
      templateUrl: function ($rootScope) { 
       return $rootScope.baseUrl + "/attributesCard.directive.html"; 
      }, 
      controller: AttributesCardController, 
      controllerAs: "vm", 
      scope: { 
       educationPlace: "=", 
       privileges: "=" 
      }, 
      bindToController: true 
     }; 
    } 

?私はそれの中で他のものを見ている。あるいは、おそらく$ rootScopeの代わりに私のためにこのデータを取得するかもしれないサービス。

おかげで、

+0

可能性のある重複した[ディレクティブtemplateUrlから$ rootScope変数にアクセスする方法](https://stackoverflow.com/questions/36007277/how-to-access-rootscope-variable-from-directive-templateurl) – Vivz

答えて

2

はい、あなたは自分のコントローラのように、あなたのディレクティブで何かを注入することができ
ashilon、サービスなど:の

app.directive("name", ["$rootScope", "myService", function($rootScope, myService) { 
    // .. 
    templateUrl: function() { 
     var baseUrl = $rootScope.baseUrl; // or myService.baseUrl; 
     return baseUrl + "/attributesCard.directive.html"; 
    }, 
    // .. 
}]); 
+0

ありがとうdevkon。あなたの答えは私を助けました。私は少し変更を加えました:あなたが示したような無名関数に$ rootScopeオブジェクトを注入するのではなく、次のように関数AttributesCardにそれを挿入しました:function AttributesCard($ rootScope){...} – ashilon

関連する問題