已编译页面

时间:2015-10-07 07:15:51

标签: angularjs binding footable

使用带有角度的footable插件时遇到问题 问题是footable将新的表行添加到我的表中,但它粘贴原始html文本而不是角度替换值,我的意思是{{' COMMENT' | translate}}而不是' Comment&#39 ; (参见'附表图像')

appended table image

我添加了click事件,以执行重新评估的特殊操作,但我不确定如何重新绑定元素HTML。

表格html

<th data-hide="phone,tablet" >{{'QUANTITY'| translate}}</th>
...
<tr ng-repeat="item in items | filter:itemsFilter"  on-last-repeat ng-click="rowExpanded($event)" >
   <td>{{item.Stock}}</td>
   ...
</tr>

如果您需要更多信息,请现在就让我。我很困惑,尝试使用谷歌搜索,但我不知道我的问题的术语。

编辑:在我看来,footable会在init上缓存表头,然后重用那些不是由angular编译的值,这可能有助于找到答案。

问题是,角度不知道细节行存在,并且其中的绑定不会被值替换

expanded first row with console view

2 个答案:

答案 0 :(得分:0)

我想,我需要重新编译附加到footable的下一个元素,我在表行上添加了ng-click:

<tr ng-repeat="item in items | filter:itemsFilter"  on-last-repeat ng-click="rowExpanded($event)" >

然后在控制器中,我发现currentTarget.nextElementSibling将返回下一个表行,这恰好是未编译的新详细信息行,因此$ compile可以解决问题。但是,当行已经展开并且窗口调整大小时,这不起作用,详细信息行中添加的列将采用{{variablename}}语法。但我想我可以忍受这种不利因素

$scope.rowExpanded = function($event){
    $timeout(function(){
        console.log($event.currentTarget.nextElementSibling);
        $compile($event.currentTarget.nextElementSibling)($scope);
    });

};
编辑:好的,当我使用&lt; progressbar&gt;时,这没有用。模板。因为在footable读取数据时它只是一堆div,当我要求angular编译它们时,它无法编译,因为一堆div不是&gt;&gt; progressbar&lt;

但是,我找到了另一种解决方案,在角度方面完成所有操作后,我延迟了足迹初始化:

TL; DR; 我删除了课程&#39; footable&#39;从表中,所以它不会自动初始化,只有在将所有ng-repeat行添加(并编译)到表后才会在表元素上调用.footable()。这解决了我目前所有的足部/角度关系问题。

答案 1 :(得分:-1)

尝试将您的翻译语句间隔开来,而不是

{{'COMMENT'|translate}}

尝试

{{ 'COMMENT' | translate }}