[英]Passing scope in template of a directive - AngularJs
我正在嘗試在指令中設置作用域並使其打印出來。 但是它給人錯誤。 有人可以幫忙嗎?
//module declaration var app = angular.module('myApp',[]); //controller declaration app.controller(function($scope){ $scope.name = "Joseph"; }); //app declaration app.directive('myStudent',function(){ return{ template: "Hi! Dear!! {{name}}" } });
<body ng-app="myApp" ng-controller="myCtrl"> <my-student></my-student> <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.5/angular.min.js"></script> </body>
您的控制器聲明不完整
//controller declaration
app.controller('myCtrl', function($scope){
$scope.name = "Joseph";
});
您需要通過以下方式正確聲明您的控制器:
app.controller("myCtrl", ["$scope", function($scope){
$scope.name = "Joseph";
}]);
並且您需要告訴您的指令通過以下方式使用此控制器:
app.directive('myStudent',function(){
return{
template: "Hi! Dear!! {{name}}",
controller: "myCtrl"
}
});
<body ng-app="myApp" ng-controller="myCtrl">
<my-student></my-student>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.5/angular.min.js"></script>
</body>
app.controller("myCtrl", ["$scope", function($scope){
$scope.name="Adrian":
}]);
在指令中
app.directive('myStudent',function(){
return{
scope:'=',
template: "Hi! Dear!! {{name}}"
})
要么
<body ng-app="myApp" ng-controller="myCtrl">
<my-student name="name"></my-student>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.5/angular.min.js"></script>
</body>
和你的指令:
app.directive('myStudent',function(){
return{
scope:{
name:'=',
},
template: "Hi! Dear!! {{name}}"
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.