使用AngularJS click事件添加的动态内容对添加的内容无效
本周我刚开始一个新项目,我必须尽快跟上进度 我的要求之一是动态添加html内容,该内容可能会有一个点击事件 下面的代码显示了一个按钮,当点击时,它会动态地添加另一个按钮。单击动态添加的按钮,应该添加另一个按钮,但我无法使用ng click来处理动态添加的按钮使用AngularJS click事件添加的动态内容对添加的内容无效,angularjs,angularjs-ng-click,dynamic-html,Angularjs,Angularjs Ng Click,Dynamic Html,本周我刚开始一个新项目,我必须尽快跟上进度 我的要求之一是动态添加html内容,该内容可能会有一个点击事件 下面的代码显示了一个按钮,当点击时,它会动态地添加另一个按钮。单击动态添加的按钮,应该添加另一个按钮,但我无法使用ng click来处理动态添加的按钮 单击我 工作代码示例在这里 var-app=angular.module('plunker',[]); 应用程序控制器('MainCtrl',函数($scope){ $scope.name='World'; $scope.addButt
单击我
工作代码示例在这里
var-app=angular.module('plunker',[]);
应用程序控制器('MainCtrl',函数($scope){
$scope.name='World';
$scope.addButton=函数(){
警报(“点击按钮”);
var btnhtml='单击我';
元素(document.getElementById('foo')).append((btnhtml));
}
});代码>
安古拉斯普朗克
文件。写(“”);
你好{{name}}
点击我
app.controller('MainCtrl',函数($scope,$compile){
var btnhtml='单击我';
var temp=$compile(btnhtml)($scope);
//假设您有一个id为“foo”的元素,您想在其中创建一个按钮
元素(document.getElementById('foo')).append(temp);
var addButton=函数(){
警报(“是,单击在动态添加的元素上工作”);
}
});
您需要在此处添加$compile
服务,该服务将角度指令
绑定到控制器范围,如ng click
。不要忘记在控制器中添加$compile
依赖项,如下所示
以下是您还可以将事件绑定到新按钮
$scope.addButton = function() {
alert("button clicked");
var btnhtml = '<button type="button">Click Me</button>';
var newButt = angular.element(btnhtml);
newButt.bind('click', $scope.addButton);
angular.element(document.getElementById('foo')).append(newButt);
}
$scope.addButton=函数(){
警报(“点击按钮”);
var btnhtml='单击我';
var newButt=角度元素(btnhtml);
newButt.bind('click',$scope.addButton);
元素(document.getElementById('foo')).append(newButt);
}
更新。只是一个小提示:从Angularjs 2.0开始,jqLite将不再是Angularjs的一部分。所以人们最好现在就开始使用jQuery。谢谢大家的快速反馈:)非常感谢,这是一个很好的帮助,你说的“foo”是什么意思?我发现,这里调用document.getElementById('foo').append(temp)是唯一完整的答案。我觉得addButton应该是像$scope.addButton=function(){….}哟,它很管用。你成功了!
$scope.addButton = function() {
alert("button clicked");
var btnhtml = '<button type="button">Click Me</button>';
var newButt = angular.element(btnhtml);
newButt.bind('click', $scope.addButton);
angular.element(document.getElementById('foo')).append(newButt);
}