2015-10-16 59 views
-3
$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对我不起作用?Ang ng-click不起作用

+0

您使用的控制器来修改DOM? –

+4

如果它在控制器中,看起来不像是一种非常“有角度的”做事方式。 –

+0

请显示所有相关代码。我们不知道你在用那个字符串做什么 – charlietfl

回答

0

这绝不会工作,你使用的角度非常非常错误,需要阅读它的文档,并看看周围的教程。

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

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

当然还有一些需要插入DOM指令的异常。因为你需要使用$ angular的angular指令,但我不会告诉你如何使用它,因为在那种情况下,我会引导你走错路。

从教程

0

嗨学习,如果你想动态创建其更好地为您使用而不是使用this.As您使用范围变量,所以你需要的帮助,以动态地添加元素的角度指令指示。我分享一个JSFiddle通过它。

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'); 
 
     }); 
 
    }; 
 
    });
<section ng-app="myApp"> 
 
    <button add-element>click me</button> 
 
    <div id="container"></div> 
 
</section>

这里是小提琴 enter link description here