2016-09-23 46 views
1

下面的代碼似乎並沒有從所定義的指令進行打印文本:角JS評論指令功能不正常

<div ng-app="myApp"> 

    <!-- directive: devComment --> 

</div> 


<script> 
    app.directive("devComment", function(){ 
       return{ 

        restrict : "M", 
        replace : true, 
        template : " A comment made this print to html " 

       }; 
      }); 
</script> 
+0

我強烈不鼓勵使用註釋指令,它們似乎不遵守正常的AngularJS指令命名規則。您還需要使用'replace',這是一個已棄用的屬性。 – Phil

回答

1

你拿到你的模板中的指令名的格式不正確。它應該是

<!-- directive: dev-comment --> 

(編輯:其實,我只是測試這一點,並徵求意見的指示,該名歸似乎並沒有那麼出現真正的問題是沒有根元素)

爲了使用replace,您的模板中也必須只有一個根元素。

angular.module('myApp', []).directive('devComment', function() { 
 
    return { 
 
    restrict: 'M', 
 
    replace: true, 
 
    template: '<span>A comment made this print to html</span>' 
 
    }; 
 
});
<div ng-app="myApp"> 
 
    <!-- directive: dev-comment --> 
 
</div> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js"></script>

+0

這仍然行不通 – jack

+0

@jack是的,我錯過了關於需要一個根元素的位。修復了代碼可運行的例子。如果OP使用正確的指令名稱,他們會得到一個控制檯錯誤。 – Phil

1

你的模板必須有一個根element.Please檢查docs。所以你的模板應該像下面

template : " <p>A comment made this print to html</p> " 

工作plunker here

0
<div ng-app="myApp"> 
    <!-- directive: dev-comment --> 
</div> 
<script> 
    app.directive("devComment", function(){ 
       return{ 
        restrict : "M", 
        replace : true, 
        template : "<h3>A comment made this print to html</h3> " 
       }; 
      }); 
</script> 
+0

指令方法中指定的指令名稱必須爲駝峯大小寫,並且必須以小寫字母開頭。例如:指令的名稱myCustomDir成爲HTML中的my-custom-dir。 myCustomDir被稱爲規範化指令名稱 –