自定义指令添加ng-click然后绘制输入元素

时间:2015-11-01 14:45:47

标签: angularjs angularjs-directive angularjs-scope

我有这个指令返回以下内容:

我在这里要做的是:

1-添加点击事件。

2 - 此次点击将绘制一个输入字段

到目前为止,ng-click正在添加到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 个答案:

答案 0 :(得分:1)

这不起作用:

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

(你可以使用编译功能。只是链接功能是一个太晚的阶段才能做到这一点)

你应该这样做:

   el .on('click', add);

此外,您应该将add的实现移动到控制器(或范围)