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);