角度ng-click无效

时间:2015-10-16 11:25:01

标签: javascript jquery angularjs

$scope.createField="<div class='form-group'><label class='col-lg-5'>"+fieldname+"</label><div class='col-lg-7'>"+fieldtypeitem+"</div></div>"+
    "<div class='col-lg-2 padding-le-re padding-re-re' data-ng-show='showbuttons'>" +
    "<a href='#' class='pl-edit-widget' data-ng-click='editFields()'><img src='images/edit_icon.png'></a>" +
    "<a href='#' class='pl-edit-remove'><img width='15' height='13' src='images/cross.png'></a></div>";

以这种方式创建变量但是ng-click对我不起作用?

2 个答案:

答案 0 :(得分:0)

这根本不会起作用,你使用的角度非常非常错误,需要阅读它的文档并查看教程。

https://docs.angularjs.org/tutorial/step_00

这不应该是修改模板的方法。

当然需要从指令插入DOM的异常。为此,你需要使用角度的$ compile指令,但我不会告诉你如何使用它,因为在这种情况下,我将引导你走错路。

从教程中学习

答案 1 :(得分:0)

如果你想动态创建它,你最好使用angular指令而不是使用它。因为你使用范围变量动态添加元素所以你需要指令的帮助。我分享一个JSFiddle来完成它。

&#13;
&#13;
angular.module('myApp', [])
  .directive('addElement', ['$compile',
    function($compile) {

      return {
        restrict: 'AE',
        scope: true,
        link: function(scope, iElm, iAttr) {
          var id = 0;
          iElm.bind("click", function(e) {
            id++;

            var container = angular.element(document.querySelector("#container"));
            var addnewElem = $compile('<table border="1"><tr><td>id</td><td>' + id + '</td></tr><tr><td><button data-alert="hi">Click to Raead</button></td><td></td></tr></table>')(container);
            container.append(addnewElem);

            // Doubt
            // scope.dowork=function(){
            // alert('hi');
            //}
          });


        }
      };
    }
  ])
  .directive('alert', function() {
    // Runs during compile

    return function(scope, element, attrs) {
      element.bind("click", function() {
        alert('hi');
      });
    };
  });
&#13;
<section ng-app="myApp">
  <button add-element>click me</button>
  <div id="container"></div>
</section>
&#13;
&#13;
&#13;

这是小提琴 enter link description here