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