すべてのオブジェクト (アイデア) を表示する ng-repeat ディレクティブがあります。アイデアの説明 (文字列) が x よりも長い場合、最初の x 文字と「すべて表示」リンクのみを表示したいと考えています。ユーザーがこのリンクをクリックすると、テキスト全体が表示されます。ただし、一度に 1 つのアイデアのみをテキスト全体とともに表示できます。
私は今これを持っています:
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 と一致する場合にのみ説明全体を表示することを期待しています。しかし、一度に複数のアイデアが長い説明とともに表示されます。
初めてアイデアが表示されたとき、私のロジックは機能します。すべて表示リンクをクリックすると、長いテキストが表示されます。しかし、openLongIdea の値を新しい Idea-ID で上書きしても、別のアイデアの [すべて表示] リンクをクリックすると、古いアイデアの横に全体が表示されます。
ここで何が問題なのですか?