Как проверить, установлен ли флажок в поле Угловой

Есть ли какая-либо функция или ng- что-нибудь, чтобы проверить, проверен ли какой-либо из отображаемых флажков?

У меня есть значения через ng-click = “function ()” и передайте значения через. Я могу идти пешком и проверять свой массив, если какое-либо значение внутри.

Я хочу активировать / деактивировать кнопку «Следующий», если флажок установлен.

Какой самый простой способ?

6 Solutions collect form web for “Как проверить, установлен ли флажок в поле Угловой”

Вы можете сделать что-то вроде:

function ChckbxsCtrl($scope, $filter) { $scope.chkbxs = [{ label: "Led Zeppelin", val: false }, { label: "Electric Light Orchestra", val: false }, { label: "Mark Almond", val: false }]; $scope.$watch("chkbxs", function(n, o) { var trues = $filter("filter")(n, { val: true }); $scope.flag = trues.length; }, true); } 

И шаблон:

 
I'm ON when band choosed

Работа: http://jsfiddle.net/cherniv/JBwmA/

UPDATE: Или вы можете пойти немного по-другому, не используя метод $watch() $scope , например:

 $scope.bandChoosed = function() { var trues = $filter("filter")($scope.chkbxs, { val: true }); return trues.length; } 

И в шаблоне:

 
I'm ON when band choosed

Скрипт: http://jsfiddle.net/uzs4sgnp/

Если вы не хотите использовать наблюдателя, вы можете сделать что-то вроде этого:

  

Если у вас есть только один флажок, вы можете сделать это легко с помощью только ng-model:

   

И инициализируйте $ scope.checked в вашем controllerе (по умолчанию = false). В этом случае официальный документ не рекомендует использовать ng-init.

Попытайтесь подумать с точки зрения модели и что происходит с этой моделью, когда флажок установлен.

Предполагая, что каждый флажок привязан к полю модели с ng-моделью, тогда свойство модели изменяется при каждом щелчке по флажку:

   

и в controllerе:

 $scope.fooSelected = false; $scope.baaSelected = false; 

Следующая кнопка должна быть доступна только при определенных обстоятельствах, поэтому добавьте директиву ng-disabled в кнопку:

  

Теперь следующая кнопка должна быть доступна только в том случае, если fooSelected is true или baaSelected истинно, и нам нужно следить за любыми изменениями этих полей, чтобы убедиться, что следующая кнопка сделана доступной или нет:

 $scope.$watch('[fooSelected,baaSelected]', function(){ $scope.nextButtonDisabled = !$scope.fooSelected && !scope.baaSelected; }, true ); 

Вышеприведенное предполагает, что имеется только несколько флажков, которые влияют на доступность следующей кнопки, но его можно легко изменить для работы с большим количеством флажков и использовать $ watchCollection для проверки изменений.

Это также повторная запись для кода вставки. Этот пример включал: – Один список объектов – Каждый объект имеет дочерний список. Пример:

 var list1 = { name: "Role A", name_selected: false, subs: [{ sub: "Read", id: 1, selected: false }, { sub: "Write", id: 2, selected: false }, { sub: "Update", id: 3, selected: false }], }; 

Я напишу 3 списка, как указано выше, и я добавлю список объектов

 newArr.push(list1); newArr.push(list2); newArr.push(list3); 

Затем я покажу, как показывать флажок с несколькими группами:

 $scope.toggleAll = function(item) { var toogleStatus = !item.name_selected; console.log(toogleStatus); angular.forEach(item, function() { angular.forEach(item.subs, function(sub) { sub.selected = toogleStatus; }); }); }; $scope.optionToggled = function(item, subs) { item.name_selected = subs.every(function(itm) { return itm.selected; }) $scope.txtRet = item.name_selected; } 

HTML:

 
    • {{item.name}}
    • {{sub.sub}}
    {{txtRet}}
  • Скрипт: пример

    У меня есть образец для нескольких данных с их списком subnode 3, каждый список имеет атрибут и дочерний атрибут:

     var list1 = { name: "Role A", name_selected: false, subs: [{ sub: "Read", id: 1, selected: false }, { sub: "Write", id: 2, selected: false }, { sub: "Update", id: 3, selected: false }], }; var list2 = { name: "Role B", name_selected: false, subs: [{ sub: "Read", id: 1, selected: false }, { sub: "Write", id: 2, selected: false }], }; var list3 = { name: "Role B", name_selected: false, subs: [{ sub: "Read", id: 1, selected: false }, { sub: "Update", id: 3, selected: false }], }; 

    Добавьте их в массив:

     newArr.push(list1); newArr.push(list2); newArr.push(list3); $scope.itemDisplayed = newArr; 

    Покажите их в html:

     
    • {{item.name}}
    • {{sub.sub}}
  • И вот решение проверить их:

     $scope.toggleAll = function(item) { var toogleStatus = !item.name_selected; console.log(toogleStatus); angular.forEach(item, function() { angular.forEach(item.subs, function(sub) { sub.selected = toogleStatus; }); }); }; $scope.optionToggled = function(item, subs) { item.name_selected = subs.every(function(itm) { return itm.selected; }) } 

    jsfiddle demo

  • Включение / выключение флажков
  • Окно столбца DataGridView - значение и функциональность
  • Android ListView с флажком и всеми интерактивными
  • Флажки для стилизации CSS
  • Как проверить, установлен ли флажок?
  • Android, как определить элемент в списке с помощью флажка
  • Android: привязка данных из базы данных к CheckBox в ListView?
  • Выделите все флажки с помощью jQuery
  • Проверьте, установлен ли флажок с помощью jQuery
  • Снимите все флажки по всей книге через CommandButton
  • Как я могу перебирать все флажки в форме?
  • Давайте будем гением компьютера.