Javascript 如何为Jquery创建的元素添加ng click of angular?
有人在项目中创建了自定义标记,例如Javascript 如何为Jquery创建的元素添加ng click of angular?,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,有人在项目中创建了自定义标记,例如 , 加载页面后,上面的标记将生成一个表 我想在表中创建一个按钮,然后插入字符串: “查找” 但是ng点击不起作用。我编写了一个简单的代码来模拟它: <!DOCTYPE html> <html ng-app="myApp"> <head> <script type="text/javascript" src="/javascripts/jquery.min.js"></script&
,
加载页面后,上面的标记将生成一个表
我想在表中创建一个按钮,然后插入字符串:
“查找”代码>
但是ng点击不起作用。我编写了一个简单的代码来模拟它:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<script type="text/javascript" src="/javascripts/jquery.min.js"></script>
<script type="text/javascript" src="/javascripts/angular/1.4.0/angular.min.js"></script>
<script>
var create = function () {
$('#template').html('<button ng-click="changeName()">click me</button>')
}
</script>
</head>
<body ng-controller="myCtrl">
<span>{{name}}</span>
<div id="template"></div>
<button onclick="create()">create</button>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.name = "John";
$scope.changeName = function () {
$scope.name = "Jack";
alert("success");
}
});
</script>
</body>
</html>
var create=函数(){
$(“#模板”).html('单击我')
}
{{name}}
创造
var-app=angular.module('myApp',[]);
应用程序控制器('myCtrl',函数($scope){
$scope.name=“John”;
$scope.changeName=函数(){
$scope.name=“杰克”;
警惕(“成功”);
}
});
我在谷歌上搜索了一下,发现angular应该编译新创建的元素,但我不知道如何在这种情况下创建这些按钮,而不是jQuery
然后angular会自动将ng-绑定到此新元素。您需要$compile
服务
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $compile) {
$scope.create = function () {
$compile($('#template').html('<button ng-click="changeName()">click me</button>'))($scope);
}
$scope.name = "John";
$scope.changeName = function () {
$scope.name = "Jack";
alert("success");
}
});
该标记包含我需要的其他功能,不需要再次创建这些功能,因此我不能使用ng repeat创建新表,正如我所提到的,该表只需要json格式配置,可能在jquery的ready()事件之后,它将创建该表,您提供的解决方案没有帮助
<button ng-click="create()">create</button>
var body = $angular.element(document).find('body');
$compile(body)($scope);