Как установить начальное значение 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>