1

我在使用带角度的footable插件时遇到问题,问题是footable将新表行附加到我的表中,但它粘贴原始html文本而不是角度替换值,我的意思是{{'COMMENT'|translate}}而不是'评论”(见“附表图像”)

附加表格图像

我添加了单击事件,以执行特殊操作以重新评估,但我不确定如何重新绑定元素 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 编译的值,也许这有助于找到答案。

问题是 Angular 不知道存在详细信息行,并且其中的绑定不会被值替换

使用控制台视图扩展第一行

4

2 回答 2

0

我发现,我需要重新编译附加到脚注的下一个元素,我在表格行上添加了 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);
    });

};

编辑:好的,当我使用 <progressbar> 模板时,这不起作用。因为在footable读取数据时它只是一堆div,当我要求angular编译它们时,它无法编译,因为一堆div不是>progressbar<

但是,我找到了另一种解决方案,在一切都在角度侧完成后,我延迟了可启动的初始化:

TL;博士; 我从表中删除了类'footable',因此它不会自动初始化,并且只有在将所有 ng-repeat 行添加(并编译)到表中之后才在表元素上调用 .footable()。这解决了我当前所有的脚/角度关系问题。

于 2015-10-08T14:01:40.593 回答
-1

尝试间隔你的翻译语句,而不是

{{'COMMENT'|translate}}

尝试

{{ 'COMMENT' | translate }}
于 2015-10-07T07:26:10.143 回答