ng 单击不起作用新附加的元素
ng-click not working on newly appended elements
为什么我的ng-click在附加按钮时不起作用?当我最初加载按钮时,相同的 ng-click 正在工作。
app.controller('demoCtrl', function() {
this.clk = '<button ng-click="dctrl.click()">Button</button>';
this.click = function() {
alert('clicked');
}
})
app.directive('btnClick', function() {
return {
restrict: 'A',
scope: {
actionBtn: '='
},
link: function(scope, element, attrs) {
element.append(scope.actionBtn);
}
}
})
.HTML
<body ng-controller="demoCtrl as dctrl">
<div btn-click action-btn="dctrl.clk"></div>
</body>
http://plnkr.co/edit/QPKXfGd9s7HzLvEfKvbG?p=preview
更新
我也尝试过这种方式,但没有运气
element.append($compile(scope.actionBtn)(scope));
您需要编译一个手动为angularjs创建的新dom元素才能对其进行处理
app.directive('btnClick', ['$compile', function ($compile) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
element.append($compile(scope.$eval(attrs.actionBtn))(scope));
}
}
}])
var app = angular.module('my-app', [], function() {})
app.controller('demoCtrl', function() {
this.clk = '<button ng-click="dctrl.click()">Button</button>';
this.click = function() {
alert('clicked');
}
})
app.directive('btnClick', ['$compile',
function($compile) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
element.append($compile(scope.$eval(attrs.actionBtn))(scope));
}
}
}
])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="my-app" ng-controller="demoCtrl as dctrl">
<div action-btn="dctrl.clk" btn-click></div>
</div>
相关文章:
- 初学者反应查询(如何删除一个元素并附加另一个元素)
- 通过id查找元素并附加链接
- 删除除一个元素外附加到该元素的所有事件
- 量角器 StaleElementReferenceError: 元素不再附加到 DOM
- 查找元素并附加图像
- 如何将新附加的元素存储到变量中
- jQuery/JavaScript:新附加行的 ids
- 在 URL 元素后附加文本
- 要将文本字段的光标从活动文本字段移动到新附加的文本字段,仅当活动文本字段已填充时,才从键盘按下回车键
- d3js 在力定向图中的线元素上附加圆形形状
- JavaScript中有没有办法检测元素是否附加了任何事件
- 如何在动态创建元素时附加javascript函数
- Jquery 模板 - 在表元素内附加表行,并首先清除任何现有行
- 关于新附加的HTML的Javascript window.print()问题
- 如果选中复选框,则复制TR元素并附加到外部源
- 在 jquery 中找到标签元素并附加新元素
- 如何从jquery中获得元素动态附加的完整表
- 为新附加的元素找到合适的事件
- 将元素HTML附加到新附加的textarea中
- ng 单击不起作用新附加的元素