我已经使用以下解决方案(接受的答案)为我的复选框列表创建一个新指令: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()">
但由于某种原因我是否检查 - 按钮没有出现。知道我可能做错了吗?
答案 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;
}
如果这对你有用,请告诉我,我可以相应更新。