私はクラス名にアクセスしてコンソールに出力しています。これはコンパイル、プレ、ポストではうまく動作しますが、ディレクティブコントローラではエラーが発生します。誰かが解決できますか?あなたは、コントローラに注射用のサービスを取得しますbeacuseクラス名は、コンパイル、プレ、ポストによって返されますが、ディレクティブコントローラでは返されません。
//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: "Hi! Dear!! {{name}}<br/>",
\t compile:function(elem, attr){
\t \t console.log("compile");
\t \t return{
\t \t \t pre:function(scope,elem,attr){
\t \t \t \t console.log("pre" + attr.class);
\t \t \t },
\t \t \t post: function(scope,elem,attr){
\t \t \t \t console.log("post"+ attr.class);
\t \t \t } \t \t \t \t \t
\t \t }
\t },
\t controller: [function(scope, elem, attr){
\t \t console.log("controller" + attr.class);
\t }]
}
});
<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>
は、スニペットが実行したときに表示するために何を想定している?作りますかどこにでも名前にアクセスしているようには見えません。ページには{{{name}} 'を表示するのではなく、' 'compile''を繰り返し表示するだけではなく、出力のどこにでも" Peter "が表示されません。 –
コントローラにコメントしてください。 – Deadpool