从角度三元运算符引用gridOptions

时间:2017-02-21 15:45:32

标签: angularjs angular-ui-grid angularjs-1.5

我有一个带有toggleFilter按钮的ui-grid:

$scope.gridOptions = {
  ...  
  enableFiltering: false,
  ...
}

$scope.toggleFilter = function () {
  $scope.gridOptions.enableFiltering = !$scope.gridOptions.enableFiltering;
  $scope.gridApi.core.notifyDataChange(uiGridConstants.dataChange.COLUMN);
};

<div id="filter" ng-click="toggleFilter()">
  ({{$scope.gridOptions.enableFiltering ? "-" : "+"}}) {{$scope.gridOptions.enableFiltering ? "Dis" : "En"}}able Filtering
</div>

切换按预期工作,文本在加载时显示正确,但不会随enableFiltering中的更改而更新。正确绑定此属性缺少什么?

2 个答案:

答案 0 :(得分:2)

从HTML中删除$ scope。

$arrayDate = $this->Birthday->find()->where(['birthday' => $_GET['date'] ])->all();

在这里工作plunker https://plnkr.co/edit/vT6Ae8aJXrqonhq8ueKQ?p=preview

({{gridOptions.enableFiltering ? "-" : "+"}}) {{gridOptions.enableFiltering ? "Dis" : "En"}}able Filtering
var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';
  
  $scope.gridOptions = {
  
  enableFiltering: false,
  
}

$scope.toggleFilter = function () {
  $scope.gridOptions.enableFiltering = !$scope.gridOptions.enableFiltering;
  //$scope.gridApi.core.notifyDataChange(uiGridConstants.dataChange.COLUMN);
};
  
  
});

答案 1 :(得分:0)

我的方法是https://jsfiddle.net/frishi/psysv1ao/2/

我认为您的三元表达式不会被评估,您不需要使用$scope来查看视图中的属性。这是隐含的。

其次,这是我的观点,控制DOM渲染的三元组是非常难以理解的。请考虑使用ng-ifng-show来实现DOM的条件呈现。