0

我已经使用以下解决方案(已接受的答案)为我的复选框列表创建了一个新指令:如何获取具有选择/取消选择所有功能和不确定值的 angular.js 复选框?并且我想在至少选择一项时显示以下按钮块:

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

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 回答
0

试试这个小提琴

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

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

让我知道这是否适合您,我可以相应地更新它。

于 2013-07-25T11:40:07.427 回答