Я пытаюсь реализовать угловую данные-неопределенные-checkbox директива в моем приложении по приведенной ниже ссылке.Угловая неопределенная галочка директива ng-change issue
Я добавил нг-изменение как для родителя и детей флажков (то же событие), который обновляет столбцы в таблице ниже. Проблема заключается в том, когда я проверяю/снимаю флажки с дочерними флажками, столбцы появляются и исчезают нормально, и это работает нормально, но когда я нажимаю флажок «Выбрать все», действие инвертируется. То есть, когда выбран флажок all, все столбцы скрыты, а при снятии флажка отображаются все столбцы.
В фрагменте коды для директивы от соединения скрипки упомянутого выше, в остальном части, если я изменю modelCtrl.$setViewValue(hasChecked);
к modelCtrl.$setViewValue(true);
, как показан в коде ниже, часть работы снимите флажок, то есть когда флажок «Select All», все столбцы скрыты, но когда я его проверю, ничего не происходит, и он не переходит на событие ng-change
. Буду признателен за любую оказанную помощь.
Спасибо заранее и с Новым годом 2016!
// Determine which state to put the checkbox in
if (hasChecked && hasUnchecked) {
element.prop('checked', false);
element.prop('indeterminate', true);
if (modelCtrl) {
modelCtrl.$setViewValue(false);
}
} else {
element.prop('checked', hasChecked);
element.prop('indeterminate', false);
if (modelCtrl) {
modelCtrl.$setViewValue(true);
}
}
Я установил 'modelCtrl. $ SetViewValue (true);' и я не вижу ошибки в поведении. Флажок отменяется, и нажатие кнопки «Выбрать все» снова включает все связанные флажки. Не могли бы вы рассказать? – Boris
Спасибо за ваш ответ. Проблема заключается не в выборе всех флажков с помощью Select All, а в событии ** ng-change **, которое я добавил в Select All. Когда я проверяю, чтобы выбрать все, столбцы в таблице, которые я пытаюсь обновить в моем коде, исчезают, что должно произойти, если выбрать все непроверено. Таким образом, поведение события противоположное. Это имеет смысл сейчас? –