2016-05-13 60 views
1

這裏是我的代碼: 我希望它產生一個<textarea><ul>一個div繼scope.current.type從數據庫並設置scope.current.content在其中。我的自定義指令無法正常工作

但它不工作,我的網頁上只是簡單的顯示<contentDirective></contentDirective>

app.directive("contentDirective", function($compile) { 
    return { 
     restrict: 'E', 
     replace: true, 
     template: "<div class='new__content__input new__content__input-text'></div>", 
     link: function(scope, element, attrs) { 
      if (scope.current.type === 'Text') { 
       var DOM = "<textarea>" + scope.current.content + "</textarea>"; 
       element.append(node); 
      } else if (scope.current.type === 'Quote') { 
       var DOM = "<textarea>" + scope.current.content + "</textarea>"; 
       element.append(node); 

      } else if (scope.current.type === 'List') { 

       var ul = "<ul>"; 
       for (var i = 0; i < scope.current.content.length; i++) { 
        ul += "<li>" + scope.current.content[i] + "</li>"; 
       } 
       ul += "</ul>"; 
       element.append(ul); 
      } 
     } 
    }; 
}); 

而且我的html:

<li ng-repeat="doc in who_u_r" ng-init=" current = doc " class="new__content__input__single clearfix"> 
    <contentDirective></contentDirective> 
<li> 

非常感謝您的幫助

回答

1

更改爲此,角轉換camelCasing蛇形框,在這種情況下,名稱必須使用破折號寫,每個破折號表示指令定義中的大寫字母。

<content-directive></content-directive> 
+0

它的工作原理,謝謝!你有時間解釋它嗎? –

+0

它非常簡單直接,Angular創建的指令是用Javascript實現的,因爲不能在名稱中使用連字符。在HTML中,爲了保持可讀性,它們被空格分隔。所以'Javascript中的myCustomDirective'會變成'' – Jhecht

+0

非常感謝。看來我還有很多工作要做。 –

相關問題