$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对我不起作用?
答案 0 :(得分:0)
这根本不会起作用,你使用的角度非常非常错误,需要阅读它的文档并查看教程。
https://docs.angularjs.org/tutorial/step_00
这不应该是修改模板的方法。
当然需要从指令插入DOM的异常。为此,你需要使用角度的$ compile指令,但我不会告诉你如何使用它,因为在这种情况下,我将引导你走错路。
从教程中学习
答案 1 :(得分:0)
如果你想动态创建它,你最好使用angular指令而不是使用它。因为你使用范围变量动态添加元素所以你需要指令的帮助。我分享一个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');
});
};
});
&#13;
<section ng-app="myApp">
<button add-element>click me</button>
<div id="container"></div>
</section>
&#13;