Как установить начальное значение ng-модели для пустой строки в angularjs?

Я хочу иметь возможность установить мое начальное значение для атрибута моей модели как таковой

<input type="text" ng-model="selectedModel.title" name="title" value="" >

Как показано выше, я хочу, чтобы значением атрибута была пустая строка, чтобы изначально создать экземпляр входного текстового поля с пустой строкой.

Тем не менее, в настоящее время ng-model="selectedModel.title" переопределяет value="",

Как мне пройти это?

1 ответ

Решение

Установите начальные значения в контроллере

Вы должны сделать это в вашем контроллере:

angular.module('MyModule').controller(
  'myController',
  function ($scope, MyService) {
    $scope.selectedModel = { title: '' };
  }

  // if you're using a service
  MyService.getModel().then(function (model) {
    $scope.selectedModel = model;
    // selected model doesn't have a title set, so give it a blank string as default
    if (angular.isUndefined($scope.selectedModel)) {
      $scope.selectedModel.title = '';
    }
  });
);

Вы можете прочитать больше о настройке начального состояния $scope в вашем контроллере здесь.

Другой вариант: нг-init

Официальные документы AngularJS для ng-init предполагают, что для ng-init есть только одно использование, "для наложения специальных свойств ngRepeat". В вашем случае вам лучше использовать контроллер для инициализации значения.

Вы можете использовать ng-init:

<input type="text"
       name="brand"
       ng-model="selectedModel.title"
       ng-init="selectedModel.title=''">
</input>
Другие вопросы по тегам