Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 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 в вашем контроллере здесь.

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

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

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

<input type="text"
       name="brand"
       ng-model="selectedModel.title"
       ng-init="selectedModel.title=''">
</input>