首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在指令中使用ng-show

在指令中使用ng-show
EN

Stack Overflow用户
提问于 2015-08-18 13:47:18
回答 1查看 56关注 0票数 0

我试图完成以下行为:

  1. 使用ng-repeat循环数组,从而生成表行。
  2. 在每一行之后添加一个额外的隐藏行(“详细信息”)(不能使用多个tbody元素)

我做了一个指令,它是tr标记的一个属性。生成第二行,但不隐藏。除了ng-show无法工作和显示“详细信息”行外,一切都按预期工作。

我的指令:

代码语言:javascript
复制
'use strict';
app.directive('entryDetails', function () {
    return {
        restrict: 'A',
        scope: {
            entry: '=',
        },
        link: function(scope,element,attrs) {
            scope.entry.showDetails = false;
            element.after(angular.element('<tr class="entry-details" ng-show="entry.showDetails" id="entry-details-'+scope.entry.id+'"><td colspan="5">Details...</td></tr>'));
        }
    };
});

呼叫via:

代码语言:javascript
复制
<tr ng-repeat="entry in  entries track by entry.id" id="entry-{{entry.id}}" entry-details entry="entry">

我需要做什么,ng-show是如何工作的,就像它在模板中一样?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-18 13:55:52

您需要$compile第二个<tr>

代码语言:javascript
复制
app.directive('entryDetails', function ($compile) {
    return {
        restrict: 'A',
        scope: {
            entry: '=',
        },
        link: function(scope,element,attrs) {
            scope.entry.showDetails = false;
            var t = '<tr class="entry-details" ng-show="entry.showDetails" id="entry-details-'+scope.entry.id+'"><td colspan="5">Details...</td></tr>';
            element.after(angular.element($compile(t)(scope)));
        }
    };
});

这将允许角线连接该ng-show,并做所有它必须做的幕后工作,以了解它。否则,角不知道它的存在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32074254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档