2017-01-13 7 views
1

まあまあ私は角度が新しく、要素を扱うためのすべての可能な方法を理解しようとしています。いくつかのブログを通過した後、特にこのLearning Directives in angular 私はコントローラがスコープを初期化するために使用できることを知ったが、私はコントローラ内のスコープを初期化することができない、 。angularJSのディレクティブでコントローラを使用する方法

これは私のサンプルコード

app.directive("simple", function() { 
      return { 
       restrict: "EA", 
       transclude: true, 
       template: "<div><button type='button'>{{name}}click me !!!</button></div>", 
       link: function (scope, element, attrs) { 

       } 
       , 
       controller: function ($scope) { 
        $scope.name = 'frog'; 
       } 
      }; 
     }); 
+1

これは正常に動作します:http://plnkr.co/edit/sfxxfX5bcN4ecgY5QUg3?p=preview。 –

+0

ご迷惑をおかけして申し訳ありません。 –

答えて

1

アイデアは、コントローラ(任意のコントローラ)の内部で使用すると、任意の時点ジェクト$スコープで、あなたが初期化を心配する必要はありませんということですです。これがコントローラーの主な目的です。 $ scopeにはMVCを実行するためにangularJsが必要です

$スコープにアクセスできる別の場所もありますが、注入されずにシーンの背後に作成されて与えられていることを理解しておくとよいでしょう。その場所は、ディレクティブのLink関数内にあります。 :)

もう1つのスコープがあり、それはアプリケーション全体の$ rootScopeです。その特定の$有効範囲は、サービスとプロバイダ( 実行時)に注入することもできます

関連する問題