Javascript 在生成的html(angularJs)中使用ng click和scope函数

Javascript 在生成的html(angularJs)中使用ng click和scope函数,javascript,html,angularjs,scope,append,Javascript,Html,Angularjs,Scope,Append,我有这样一个代码: $scope.printOutRowModel = function(){ console.log("blah"); } $scope.createTable = function(name) { var element = angular.element(document.querySelector('.popup')); var content = ""; content+='<div><

我有这样一个代码:

$scope.printOutRowModel = function(){
    console.log("blah");
}


$scope.createTable = function(name)
{   
        var element = angular.element(document.querySelector('.popup'));
        var content = "";
        content+='<div><hr/>';
        content+='<h4>'+name+'</h4>';
        content+='<table><thead>';
        var columnName = Object.keys($scope.genericModel[name][0]);
    for(var i=0; i<columnName.length; i++)
    {
        if(columnName[i] != "$$hashKey")
        {
        content+='<th>'+columnName[i]+'</th>';
        }
    }
        content+='</thead><tbody>';
    for(var j=0; j<$scope.genericModel[name].length; j++)
    {
        content+='<tr>';
        var value = Object.values($scope.genericModel[name][j]);
        for(var i=0; i<value.length-1; i++)
        {   
        content+='<td>'+value[i]+'</td>';
        }
        content+='</tr>';
        value = null;
    }
        content+='</tbody></table></div>';
        element.html(content);
}
$scope.printOutRowModel=function(){
控制台日志(“废话”);
}
$scope.createTable=函数(名称)
{   
var元素=angular.element(document.querySelector('.popup');
var-content=“”;
内容+='
'; 内容+=''+名称+''; 内容+=''; var columnName=Object.keys($scope.genericModel[name][0]);
对于(var i=0;i将此指令添加到您的应用程序:

app.directive('template', ['$compile', function($compile) {
    return function(scope, element, attrs) {
        attrs.$observe("template", function(_newVal) {
            scope.$applyAsync(function() {
                element.html(_newVal);
                $compile(element.contents())(scope);
            });
        });

    };
}]);
然后,不要在
createTable
函数中选择
.popup
类,而是执行以下操作:

<div class="popup" template="{{myTableTpl}}"></div>

角度.module('app',[])
.directive('template',['$compile',
函数($compile){
返回函数(范围、元素、属性){
属性$observe(“模板”,函数(_newVal){
作用域$applyAsync(函数(){
html(_newVal);
$compile(element.contents())(范围);
});
});
};
}
])
.controller('ctrl',函数($scope){
$scope.tpl='METE-30'
});

我这样做了,但我没有在页面上显示我的内容,但当我在页面上按f12时,它会在template=“…”下显示。我是做错了还是?@i1zivkovic,这很奇怪!控制台中是否有任何错误?不,我没有。嗯……我试图移动{myTableTpl}在div标记内,但它将内容显示为字符串。.我刚开始做angular,所以我真的不知道。@i1zivkovic,我在指令中更改了一行,并在应答中添加了选中的代码。
$scope.createTable = function(name)
{   
    var content = "";
    // Create your content...
    $scope.myTableTpl = content;
}