У меня проблема, когда я пытаюсь опубликовать значение флажка в моей модели на сервере, и поскольку флажок не был связан с формой, угловой, похоже, не был назначен это значение, когда я запрашиваю значение флажка, оно возвращается как неопределенное.Значение модели checkbox модели AngularJS не определено
Вот моя разметка:
<div class="form-group">
<input id="templateDisable" type="checkbox" ng-model="template.disabled" />
<label for="templateDisable">Disabled</label>
</div>
А вот сокращенная версия моего спасения действий на моем контроллере:
$scope.save = function (form) {
if (form.$valid) {
var formData = new FormData();
// this is the problem line of code
formData.append("disabled", $scope.template.disabled);
// ... some other stuff
}
};
На самом деле, тикает затем сняв выделение флажка, прежде чем я ударил сохранить результаты действий в свойстве template.disabled будет false, чего я ожидал бы без ручного вмешательства.
Я видел другие связанные вопросы, например. AngularJS: Initial checkbox value not in model, но наверняка вещи, как простой флажок, нужно испечь? Мне не нужно было писать директивы для управления флажками?
В чем преимущество сохранения свойств модели неопределенными? –
Я бы сказал, что их несколько. a) Модель не изменяется неявно, просто привязывая ее к элементу управления. Это было бы плохой дизайн, ИМХО. b) Консистенция сохраняется, потому что если был установлен флажок, чтобы установить модель в значение false по умолчанию, то я думаю, что текстовый ввод также должен был бы установить начальное значение в пустую строку '', чтобы все было согласовано. Но это тоже плохой дизайн. – Stewie
Как @NeilAtkinson указал ниже, это всегда будет устанавливать значение false, даже если оно было истинным в первую очередь. –