2015-01-13 18 views
0

我想通过角度指令将一些HTML附加到现有的容器。这里是我写的相同的代码。angular添加一个模板点击按钮

app.directive("addActivityRow", function($compile){ 
var template = "Some html template" 
return{ 
    restrict: 'A', 
    link: function(scope, element,attrs,controller){ 
     element.on("click", function() { 
      console.log("clicked on add row"); 
      element.parent().append(template); 
     }); 
    } 
} 
}); 

这里是HTML标记

<a href="javascript:void(0);" addActivityRow class="add" title="Add Row"></a> 

任何一个可以请帮我纠正我做了什么错误?当我点击锚标记时,什么也没有发生,没有任何日志在控制台上。与此

href="javascript:void(0);" 

我是新来的角请帮助..

+0

错字?在视图中'addActivityRow'应该是'add-activity-row'。指令名称在[view](http://plnkr.co/edit/4Y2CAjrPEmeDR7mq3Sw3?p=preview)中用作短划线限制属性。 – PSL

+0

工作,谢谢PSL。现在我有另一个问题。属性为'add-activity-row'的锚标签也将位于模板中。我该如何绑定指令来点击动态生成的元素上的事件? – BeginnertoUI

+0

我应该去$ compile()吗? – BeginnertoUI

回答

1

替换此

href="" 

而且使用附加活动行,而不是作为addActivityRow @PSL提到指令名称在视图中用作短划线限制属性。


<a href="" add-activity-row class="add" title="Add Row"></a> 
+0

感谢您在Bhojendra sah中跳跃..我尝试删除“javascript:void(0);”。当我点击时,它将我带到根网址。 – BeginnertoUI

+0

使用e.preventDefault(); –

+0

这是来自我的控制台的日志。 我试过添加两次并删除两次。当我第二次点击删除。控制台显示3而不是2.之后,当我点击添加,它附加了5个元素。 2点击添加行app.js(第138行) 3点击删除行 – BeginnertoUI