2014-06-01 4 views
0

У меня есть Javascript, как это проверить, если установлен флажок:угловой JS использование проверяется() вместо IndexOf() для флажка

$scope.toggleCheck = function (course) { 
    //checkedfunction(course); 
    if (($scope.selectedCourses.indexOf(course) === -1)) { 
     $scope.selectedCourses.push(course); 
     $scope.planned += 3;  
    } else { 
     $scope.selectedCourses.splice($scope.selectedCourses.indexOf(course), 1); 
     $scope.planned -= 3; 
    } 
    $scope.getPercentage(); 
}; 

и в HTML у меня есть:

<input type="checkbox" ng-checked="checkedfunction(child)" ng-click="toggleCheck(child)" ng-disabled="required == (planned+completed) && (selectedCourses.indexOf(child) == -1) | filter: checkMpttdetails(child)" value=""/> 

Я хотел бы узнать, есть ли какая-либо функция checked(), чтобы проверить, установлен ли флажок вместо использования свойства indexof()?

ответ

1

Если вы используете JQuery (не jqLite - хотя это может работать), а затем передать 'это' на ваш клик обработчика:

ng-click="toggleCheck(this, child)" 

и в обработчике щелчка:

$scope.toggleCheck = function(element, course){ 
    if ($(element).is(':checked)) { 
     ... 
    } 
} 
0
<input type="checkbox" ng-disabled="required == (planned+completed) && (selectedCourses.indexOf(child) == -1) | filter: checkMpttdetails(child)" ng-checked="isChecked" /> 

Вы можете установить/снять галочку с помощью переключателя $scope.isChecked - также вы можете проверить, проверено ли оно, проверив значение $scope.isChecked.

0

Используйте объект $event, чтобы получить доступ к элементу, действующему на ng-клике. Внутри этого объекта есть свойство target, которое (для ввода флажка) имеет состояние checked.

ng-click="toggleCheck($event)" 

функции контроллера:

$scope.toggleCheck = function($event){ 
    var thisCheckbox = $event.target; 
    if (thisCheckbox.checked) { 
     ... 
    } 
} 

Это чистая Угловое и не требует каких-либо дополнительных библиотек.

Смежные вопросы