0

私はAngularJSを初めて使いました。私は基本から学び始め、最も単純な例とカスタムの例を始めました。最近私はAngularJSのいくつかの奇妙な動作を見つけました。コントローラとディレクティブ変数のスコープ

私は次のコードスニペットがあります:あなたはこの例でわかるように、私たちは私たちのモジュールを定義

angular.module('test', []) 
 
\t .controller('aCtrl', function($scope){}) 
 
\t .controller('bCtrl', function($scope){ 
 
\t \t \t $scope.message = 'Hello!'; 
 
\t }) 
 
\t .directive('b',function() 
 
\t { 
 
\t \t return { 
 
\t \t \t controller: 'bCtrl', 
 
\t \t }; 
 
\t });
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8" /> 
 
\t <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
\t <script type="text/javascript" src="src.js"></script> 
 
</head> 
 
<body ng-app="test"> 
 
    <div ng-controller="aCtrl"> 
 
     {{ message }} 
 
    </div> 
 
    <div b> 
 

 
    </div> 
 
</body> 
 
</html>

を - test、1つのディレクティブbと二つのコントローラ:aCtrlbCtrlを、 bCtrlからbにバインドします。 bCtrl$scopeサービスでは、変数messageを定義し、文字列Hello!を割り当てます。 htmlコードでは、要素がng-app="test"と2つのdiv要素が含まれています.1つはaCtrlコントローラ、もう1つはbディレクティブです。 $scopeaCtrlのコントローラで定義された変数messageがないので、それは、私の知る限り理解し、何を作るべきではない時には、上記

コードは私に

Hello! 

を生成します。

これは正常な動作ですか、あるいはAngularJSコントローラとディレクティブについて何か不足していますか?

+0

aCtrlは何も出力しませんHello!指示から来る – Pravin

答えて

0

ディレクティブは、どこでどのように使用しているかによってスコープ間で共有されます。スコープにはさまざまな種類があります.-共有、継承、隔離。私はあなたに私が何を指しているかのリンクを与えています。 Behavior of custom directives

関連する問題