簡體   English   中英

在指令模板中傳遞范圍-AngularJs

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM