最近创建的元素不会调用 ng-click
Lately created elements does not call ng-click
我的代码中有一些稍后在页面上添加的html元素。 但是当你稍后添加它时,指令ng-click不起作用。
我尝试过的另一个解决方案是使用 onclick 属性在这个后来添加的元素上调用节点方法,但这意味着在控制器外部调用 angularJs 方法,这是不可能的(如果是这样,可能是许多类型问题的好解决方案)
下面是 JSFIDDLE 示例:http://jsfiddle.net/hugoofab/wktqrhv3/1/
下面是标记:
<div ng-app="myApp" ng-controller="MyController" >
<button type="button" ng-click="testFunction('this will work')">STEP 1. this will work</button>
<button type="button" ng-click="addElement()" >STEP 2. add button</button>
<div id="foodiv"></div>
<button type="button" onclick="anotherWay()" >STEP 4. another way</button>
这是javascript:
var myApp = angular.module('myApp', []);
function anotherWay ( ) {
alert("another way would be call node method outside, but how to do it?")
// ohhh man.. what I'll code here?
//myApp.controller.scope()..... I really don't know
}
myApp.controller('MyController', function($scope) {
$scope.testFunction = function ( a ) {
alert(a)
}
$scope.addElement = function ( ) {
document.getElementById('foodiv').innerHTML = '<button type="button" ng-click="testFunction(''this will not work'')">STEP 3. this will not work</button>' ;
}
});
谢谢!
你似乎在以"非角度"的方式做事......
首先,这发生在你身上,因为你在 angular $compile
视图之后添加了这些元素。
"角度方式"的一种方法是在按钮上使用ng-show
/ng-hide
指令,并使用控制器显示/隐藏它们。
另一种方法是有这样的东西:
$scope.buttons = [{ }, { }];
并使用控制器向此数组添加按钮。然后使用 ng-repeat
在视图中呈现此数组。
相关文章:
- ng-click指令没有调用整个函数
- 是否可以在 ng-click 中调用函数字符串
- Angularjs指令链接调用ng-click中的函数
- 如何在AngularJS ng-click(或ng-change,..)中调用服务函数
- AngularJS ng-click 指令不调用函数
- ng-class 的函数表达式在 ng-click 时被调用
- AngularJS ng-click不调用作用域上的函数
- AngularJS在ng-click上调用自定义指令(A表单)
- ng-click 或 ng-submit 不调用控制器方法
- AngularJS ng-click:如何调用函数作为参数的函数
- 使用 ng-click 调用链接到我的项目的 JavaScript 函数
- Angularjs 绑定在从 ng-click 调用时不起作用
- ng-click 指令不调用控制器作用域中定义的函数
- AngularJS ng-click()在控制器中的.append('')函数的动态调用中不起作用
- 如何定义角度指令,该指令包含一个方法,并且可以通过“ng click”调用
- 将焦点放在由 ng-click 调用的函数中的“this”元素上
- 无法在angularjs中调用ng-click
- 通过ng-click函数调用业务
- Angularjs $http在第一次调用ng-click后不返回调用
- 最近创建的元素不会调用 ng-click