0

チェックボックスのリストに新しいディレクティブを作成するために、次の解決策 (受け入れられた回答) を使用しました少なくとも1つのアイテムが選択されているときに、次のボタンブロックを表示したい:

<div class="btn-group pull-right mrr5" data-ng-show="masterChecked">

    <button class="btn btn-danger"><i class="icon-trash"></i> Remove selected</button>
    <button class="btn btn-info"><i class="icon-download icon-white"></i> Export selected as .csv</button>

</div>

ご覧のとおり、「masterChecked」が割り当てられた「data-ng-show」属性を使用しています。これは、「マスター」のステータスに基づいてディレクティブのコントローラー内で設定されます。

<input type="checkbox" data-ng-model="master" data-ng-change="masterChange()">

しかし、何らかの理由でチェックしてもしなくても、ボタンが表示されません。私が間違っているかもしれないことは何ですか?

これがフィドルです:http://jsfiddle.net/scabro/Ahe2X/10/

4

2 に答える 2

2

メインコントローラーで別の $scope 変数 (ディレクティブからのもの) の値を確認しようとしているようです

同じものにするために、ディレクティブで別の属性として渡すことができます

このフィドルをチェックさせてください:http://jsfiddle.net/DotDotDot/Ahe2X/22/

私はちょうど3つの小さな点を修正しました:

まず、メイン コントローラーで masterChecked 値を作成しました。

cmdApp.controller('UserController', function($scope) {
    $scope.masterChecked=false;
    ....

どこでも同じ変数を持つために、ディレクティブのスコープに masterChecked 値を追加します

scope: { checkboxes: '=', masterChecked:"=" },

次に、別の属性でディレクティブを呼び出すことができます:

<three-state-checkbox checkboxes="users" class="select-all-cb" master-checked="masterChecked">

そして今、ディレクティブでメインコントローラーから masterChecked 変数を操作していますが、それは機能します:)

于 2013-07-25T11:58:16.590 に答える