Angularjs angular$编译一个内部有ng重复的潜水
我有以下问题: 我有一些表格将自动生成角度和ng重复:Angularjs angular$编译一个内部有ng重复的潜水,angularjs,compilation,html-table,Angularjs,Compilation,Html Table,我有以下问题: 我有一些表格将自动生成角度和ng重复: <article id="search-performance-table" class="container-fluid istable"> <div class="printOptionElements printshow newpage size100"></div> <!-- Start Table Simple-->
<article id="search-performance-table" class="container-fluid istable">
<div class="printOptionElements printshow newpage size100"></div>
<!-- Start Table Simple-->
<section class="row">
<div class="col-md-12">
<div class="table-responsive" ng-controller="SmartTableController">
<table id="table-performance-suche" class="table table-hover" st-table="displayed" st-safe-src="tablePerformanceSearch">
<thead>
<tr class="active">
[... Header Elements ...]
</tr>
</thead>
<tbody>
<tr ng-repeat="element in displayed">
<td>{{element.date| date}}</td>
<td>{{element.requests| number:0}}</td>
<td>{{element.clicks| number:0}}</td>
<td>{{element.clickRate| percentage:2}}</td>
<td>{{element.carts| number:0}}</td>
<td>{{element.buys| number:0}}</td>
<td>{{element.conversionRate| percentage:2}}</td>
<td>{{element.responseTime| number:2}} ms</td>
</tr>
</tbody>
<tfoot class="font-blue-grey-light" ng-model="tablePerformanceSearchTotal">
<tr class="active">
[... Footer Elements ...]
<tr>
<td colspan="12" class="text-center">
<div st-pagination="" st-items-by-page="$root.itemsByPage1_table1" st-displayed-pages="7"></div>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
</section>
<!-- Ende Table Simple -->
</article>
现在我有了里面有元素的文件。旧元素被隐藏起来了。但是angular不起作用,因为它不在$scope范围内。我将元素编译到范围中
$( ".printOptionElements" ).each(function( index ) {
var parentid = this.parentNode.id;
$compile($("#"+parentid).children().not(".printOptionElements"))($scope);
$scope.$apply();
});
这适用于页脚中的简单角度变量,但ng repeat不起作用。我只得到:
<tbody>
<!-- ngRepeat: element in displayed -->
</tbody>
有办法解决这个问题吗?编译元素后,我尝试使用$scope.$digest()
或$apply()
。但它不起作用
我希望有人能帮助我 我认为在使用JQuery时,必须用JQuery替换$try:
pageElements[pageNumber][elementOnPage] = "<div id='"+this.parentNode.id+"' class='thisIs100 printPaper'>"+jQuery("#"+this.parentNode.id).html()+"</div>";
for (j=0; j < pageElements.length; j++) {
for (i=0; i < pageElements[j].length; i++) {
jQuery("#site"+j).append(""+pageElements[j][i]+"");
}
}
先试试,告诉我是否更好?:)
您可以在控制台中看到什么?
带有$scope变量的部件在控制器中 我认为在使用JQuery时,必须用JQuery替换$try:
pageElements[pageNumber][elementOnPage] = "<div id='"+this.parentNode.id+"' class='thisIs100 printPaper'>"+jQuery("#"+this.parentNode.id).html()+"</div>";
for (j=0; j < pageElements.length; j++) {
for (i=0; i < pageElements[j].length; i++) {
jQuery("#site"+j).append(""+pageElements[j][i]+"");
}
}
先试试,告诉我是否更好?:)
您可以在控制台中看到什么?
带有$scope变量的部件在控制器中 嗨,谢谢你的回答。我用jQuery替换了每一个$。但什么也没发生。但是angular中的其他jQueryElement也使用$,所以我认为这不是问题所在。但感谢您的帮助,您已将$scope.$apply()放入$$phase test?是的“jQuery(.printOptionElements”)。每个(函数(索引){var parentid=this.parentNode.id;$compile(jQuery(“#”+parentid).children().not(“.printOptionElements”)($scope);if(!$scope.$$phase){$scope.$apply();}}});“你的控制台中有对齐吗?你可以在chrome上使用一个有用的插件,”ng inspector“观察它;)[link]我在控制台上有一条错误消息,但我不明白,它不会影响输出(直到现在?).TypeError:无法读取compositeLinkFn()处未定义的属性'childNodes',compositeLinkFn()处[…]处(id=“contentarea”ng view=”“class=“ng scope”>这是eror消息。但与ng repeat不同,它可以毫无问题地工作,并将每个angular元素编译到作用域中。您好,谢谢您的回答。我用jQuery替换了每个$。但是什么都没有发生。但是angular中的其他jQueryElement也使用$,所以我认为这不是问题。但是感谢您的帮助,您有了p在$$phase test?Yeah“jQuery(.printOptionElements”).each(函数(索引){var parentid=this.parentNode.id;$compile(jQuery(“#”+parentid).children().not(.printOptionElements”)($scope);if(!$scope.$$phase){$scope.$apply()}});“您的控制台中是否有对齐功能?您可以使用一个在chrome上可用的插件,”ng inspector“查看它;)[link]我在控制台上有一条错误消息,但我不理解它,并且它不会影响输出(直到现在?)。TypeError:无法读取CompositeLkn()处未定义的属性'childNodes'在compositeLinkFn(id=“contentarea”ng view=”“class=“ng scope”>这是eror消息。但除了ng repeat之外,它可以毫无问题地将每个角度元素编译到范围中。
jQuery( ".printOptionElements" ).each(function( index ) {
var parentid = this.parentNode.id;
$compile(jQuery("#"+parentid).children().not(".printOptionElements"))($scope);
if(!$scope.$$phase){
$scope.$apply();
}
});