web-dev-qa-db-ja.com

AngularJS-ng-repeat内でng-showを使用する

ng-showブロック内でng-showディレクティブを使用すると問題が発生します。

ブール値がng-showに正しく渡されていないようです...

私の言いたいことを示すために、JSFiddleで作成した例のスクリーンショットを次に示します。

enter image description here

マークアップの例を次に示します。

<table ng-controller="ActressController" class="table table-bordered table-striped">
    <tr ng-repeat="actress in actressList">
        <td>
            <span class="actress-name">{{ actress.name }}</span>
            <h4 ng-show="{ actress.name == 'Scarlett' }">Was in Avengers! <span class="note">(should only appear if Scarlett)</span></h4>
            <h2>{{ actress.name == 'Scarlett'}} <span class="note"><-- this statement is correct</span></h2>

        </td>

    </tr>
</table>

次にコントローラーの例を示します。

function ActressController($scope) {
    $scope.actressList = [
        {
            name: "Angelina"
        }, {
            name: "Scarlett"
        }, {
            name: 'Mila'
        }, {
            name: 'Megan'
        }
    ]        

}

私が間違っているかもしれないことについての考えはありますか?

24
PhillipKregg

ng-showで{}は必要ありません。これを試してください:

<h4 ng-show="actress.name == 'Scarlett'">Was in Avengers! <span class="note">

ng-show内のng-repeatの動作サンプルについては、 this fiddle を参照してください。

36
Gloopy