在Angular Directive中的前后链接中打印属性

Dea*_*ool 2 javascript angularjs angularjs-directive

我试图访问和打印角度指令中的类名.但是,我没有得到理想的结果.相反,为所有值定义未定义.

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

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

//app declaration
app.directive('myStudent',function(){
return{
	template: "Hi! Dear!! {{name}}<br/>",
	compile:function(elem, attr){
		console.log("compile");
		return{
			pre:function(scope,elem,attr){
				console.log("pre"+ this.class) ;
			},
			post:function(scope,elem,attr){
				console.log("post"+ this.class);
			}					
		}
	},
}
});
Run Code Online (Sandbox Code Playgroud)
<body ng-app="myApp" ng-controller="myCtrl"> 

<my-student class="one"></my-student> 
<my-student class="two"></my-student> 
<my-student class="three"></my-student> 
<my-student class="four"></my-student> 
<my-student class="five"></my-student> 

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.5/angular.min.js"></script> 
</body> 
Run Code Online (Sandbox Code Playgroud)

Sa *_*ary 5

然后尝试使用attr.class

app.directive('myStudent',function(){
return{
    template: "Hi! Dear!! {{name}}<br/>",
    compile:function(elem, attr){
        console.log("compile");
        return{
            pre:function(scope,elem,attr){
                console.log("pre"+ attr.class) ;
            },
            post:function(scope,elem,attr){
                console.log("post"+attr.class);
            }                   
        }
    },
}
});
Run Code Online (Sandbox Code Playgroud)