Я борюсь с флажком ввода и ng-моделью. Я инициализирую свою переменную значением false, устанавливая ее как ng-модель для флажка ввода. При его отображении значение равно false. После нажатия на флажок значение меняется на неопределенное вместо истинного.
Вот мой код:
<div ng-app="app" ng-controller="Controller">
<input id="check" type="checkbox" ng-model="model.noExpiry" ng-click="model.clickCheck()">Click
<p>{{model.noExpiry}}</p>
</div>
var module = angular.module("app",[]);
module.controller("Controller", function ($scope) {
$scope.model = {};
$scope.model.noExpiry = false;
$scope.model.clickCheck = function(){
console.log($scope.model.noExpiry);
}
});
Если я удалю ng-модель и изменю функцию model.clickCheck на следующую, она правильно изменит переменную с false на true и наоборот:
$scope.model.clickCheck = function(){
if($scope.model.noExpiry) {
$scope.model.noExpiry = false;
}
else {
$scope.model.noExpiry = true;
}
console.log($scope.model.noExpiry);
}
Когда я инициализирую model.noExpiry значением true, флажок оказывается отмеченным, но при снятии и повторной проверке он меняется на false, а затем снова на undefined.
Кто-нибудь знает, почему переменная не меняется на истину, а вместо этого становится неопределенной?
Версия AngularJs: 1.5.5
$scope.model = {};
- person Aleksey Solovey   schedule 05.04.2018