我有一个 ng-repeat 指令,我在其中显示所有对象(想法)。如果一个想法描述(字符串)比 x 长,我只想显示前 x 个字符和一个“全部显示”链接。用户可以点击此链接,将显示整个文本。但是一次只能显示一个想法及其整个文本。
我现在有这个:
div(ng-show = "idea.description.length > maxIdeaDescLength && openLongIdea != idea._id")
i {{idea.description.substring(0, maxIdeaDescLength) }} ...
a(href='', ng-click='openLongIdea = idea._id') show all
div(ng-show = "idea.description.length <= maxIdeaDescLength || openLongIdea == idea._id")
i {{idea.description}}
这是我的控制器的一部分:
$scope.openLongIdea = 0;
所以当我点击显示所有链接时,ideaID 将被保存到变量 openLongIdea 中。而且由于我的 ng-show 条件,我希望仅在idea-ID 与 openLongIdea-ID 匹配时显示整个描述。但我仍然一次看到不止一个想法,它们的描述很长。
第一次展示这些想法时,我的逻辑是有效的。当我单击显示所有链接时,将显示较长的文本。但是当我点击另一个想法的查看全部链接时,它也会整体显示在旧想法旁边,尽管我用新的想法ID覆盖了openLongIdea中的值。
这里有什么问题?