2016-05-13 99 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

非常感谢。看来我还有很多工作要做。 –

相关问题