2015-11-01 48 views
0

我有这个指令返回如下:自定义指令添加纳克单击然后绘制输入元素

什么,我想在这里做的是:

1-添加单击事件。

2,点击此画将一个输入字段,

至今,NG-点击被添加到DOM,但它不会调用add函数, 你可以看到我尝试使用编译但是当我用它

我究竟做错了整个元素没有了吗?

return { 
    link: function($scope, element, attrs) { 
     $scope.add = add; 
     $scope.remove = remove; 
     el = element.attr('ng-click', 'add()'); 
     // $compile(el); 

    function add(){ 
     console.log("inside addinput<<<<<<") 
     var element = '<div>\ 
      <input type="text"/>\ 
      <button ng-click="remove()">Save</button>\ 
      <button ng-click="remove()">Close</button>\ 
      </div>'; 
     newElement = $compile(newElement)($scope); 
     element.append(newElement) 
     } 
     function remove(){ 
     newElement.remove(); 
     } 
    } 
} 

回答

1

这是行不通的:

el = element.attr('ng-click', 'add()'); 

(你可以使用编译功能,为此,它只是链接功能是太后期阶段做到这一点。)

你应该这样做:

el .on('click', add); 

另外,您应该将add的实施移至cont滚筒(或范围)

+0

好的,你是正确的:) @Royi我添加了一个控制器,它的工作,只是一个小意见你的意思element.on('click',$ scope.add)不添加,也怎么样删除?现在它不工作你有关于它的评论? – sisimh

+0

其实你可以同时使用这两个地方,但控制器应该是这个地方http://plnkr.co/edit/lekbrXKbMuj7GYwPBNTa?p=info –

+0

明白你的意思,说我想通过点击传递$事件,做$事件.preventDefault(),我怎么能实现呢? – sisimh