0

ngRepeat を ngIf または ngShow と一緒に使用しようとしています。それはうまくいきません..「ポスター」と「ビューアー」IDに一致するものだけを表示しようとしているので、ユーザーは自分の投稿だけを見ることができます。私はmeanJSを使用しています。それが欠けているかどうかわからないので、ディレクティブを調べています。

<div class="col-xs-12 col-sm-4 col-md-3 col-lg-3 extraSpaceList text-center" data-ng-repeat="motor in motorsCtrl.motors | filter:searchText | filter:searchFilter">
        <div ng-if="((authentication.user) && (authentication.user._id == motor.user._id))">
        <a class="list-group-item" ng-click="motorsCtrl.modalUpdate('lg', motor)">
            <div class="bg-info">
                <h4 class="list-group-item-heading" data-ng-bind="motor.title"></h4>
            </div>
        </a>
        </div>
    </div>
4

1 に答える 1

1

調べるべきことがいくつかあります。

初め:

を使用している場合ng-ifng-ifは独自のスコープを作成します。ng-ifサービスを使用しない限り、内部から親スコープ モデルにアクセスすることはできません$parent。したがって、モデルを変更する必要がmotorsCtrl.modalUpdate('lg', motor)あり$parent.modalUpdate('lg', motor)ますmotor.title$parent.motor.title

2番:

おそらくここng-showの代わりに使い始める必要がありng-ifます。少なくともアプリがビューをレンダリングするまで。しかし、それを調べてください。

以下を検討することをお勧めします (@markovuksanovic から引用):

ng-ifDOM から要素を削除します。これは、すべてのハンドラーまたはそれらの要素にアタッチされたその他のものが失われることを意味します。たとえば、クリック ハンドラーを子要素の 1 つにバインドした場合、ng-ifが false と評価されると、その要素は DOM から削除され、後で が true と評価されて要素が表示された後でも、クリック ハンドラーは機能しなくなります。ng-ifハンドラーを再アタッチする必要があります。ng-show/ng-hide は DOM から要素を削除しません。CSS スタイルを使用して要素を非表示/表示します (注: 独自のクラスを追加する必要がある場合があります)。このようにして、子にアタッチされたハンドラーが失われることはありません。 ng-ifng-show/ng-hide は作成しませんが、子スコープを作成します

于 2015-01-04T12:03:23.727 に答える