0

ディレクティブでスコープを 'true'として使用しています。だから今、この指示のスコープは親から子に渡りますが、逆ではありません。私は現在scope.nameを2回印刷しています。親スコープの第1番目のディレクティブ。今私は2つの異なる値を取得する必要があります。しかし、私は両方のスコープの値が同じになっています。 Plは説明を助ける!スコープtrueのディレクティブで間違った結果を返す

//module declaration 
 
var app = angular.module('myApp',[]); 
 

 
//controller declaration 
 
app.controller('myCtrl',function($scope){ 
 
$scope.name = "Peter"; 
 
}); 
 

 
//app declaration 
 
app.directive('myStudent',function(){ 
 

 
return{ 
 
\t template: "{{name}}", 
 
\t scope:true 
 
} 
 
controller: [function(){ 
 
\t $scope.name = "Roger" 
 
}] 
 

 
});
<body ng-app="myApp" ng-controller="myCtrl"> 
 

 
{{name}}, 
 

 
<my-student></my-student> 
 

 
</body> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.5/angular.min.js"></script>

答えて

1

コントローラが指令を逸脱しています。私はそれを入れて$scopeの依存関係を追加しました。できます!

//module declaration 
 
var app = angular.module('myApp',[]); 
 

 
//controller declaration 
 
app.controller('myCtrl',function($scope){ 
 
$scope.name = "Peter"; 
 
}); 
 

 
//app declaration 
 
app.directive('myStudent',function(){ 
 

 
return{ 
 
\t template: "{{name}}", 
 
\t scope:true, 
 
     controller: ['$scope', function($scope) { 
 
      $scope.name = "Roger" 
 
     }] 
 
} 
 

 

 
});
<body ng-app="myApp" ng-controller="myCtrl"> 
 

 
{{name}}, 
 

 
<my-student></my-student> 
 

 
</body> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.5/angular.min.js"></script>

+0

完璧に実行されます!ありがとう。 – Deadpool

+0

@Deadpool役に立つとわかったら回答を受け入れてください – tanmay

+0

時間があります。 – Deadpool

1

DDOの中にあなたのコントローラを書きます。

//app declaration 
app.directive('myStudent',function(){ 

return{ 
    template: "{{name}}", 
    scope:true, 
    controller: ['$scope', function($scope){ 
     $scope.name = "Roger" 
    }] 
} 

これはおそらく問題を解決します。

+0

また、指示句コントローラに$ scopeを注入する必要があります。そうでない場合はエラーが発生します。また、DDOの完全な形式は何ですか? – Deadpool

+0

@Deadpool、ありがとう、私はそれを忘れてしまった。 – SaiUnique

+1

@Deadpool "指令定義オブジェクト" – tanmay

0

それは、X = {}指令 すなわちするvarでバインドされることができるように、簡単に、親コントローラ内のオブジェクトを作ります。 x.value = value; //渡してからアクセスしようとしています。

関連する問題