AngularJS:带有多个复选框的ng-show

时间:2013-07-25 10:28:42

标签: angularjs checkbox angularjs-directive ng-show

我已经使用以下解决方案(接受的答案)为我的复选框列表创建一个新指令:How can I get angular.js checkboxes with select/unselect all functionality and indeterminate values?并且我想在选择至少一个项目时显示以下按钮块:

<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>

正如您所看到的,我正在使用'data-ng-show'属性并为其分配了'masterChecked',该属性是根据'master'的状态在指令的控制器中设置的:

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

但由于某种原因我是否检查 - 按钮没有出现。知道我可能做错了吗?

这是小提琴:http://jsfiddle.net/scabro/Ahe2X/10/

2 个答案:

答案 0 :(得分: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变量,它可以正常工作:)

答案 1 :(得分:0)

试试这个fiddle

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

$scope.cbChange = function () {
    $scope.display = !$scope.display;
}

如果这对你有用,请告诉我,我可以相应更新。