AngularJS ng-модель не может получить данные из поля ввода - PullRequest
0 голосов
/ 21 декабря 2018

Я столкнулся с проблемой в AngularJS. Я не могу получить данные из поля ввода.

Это мое поле ввода HTML:

<input ng-model="dnameform" ng-init="dnameform=user.user_displayname" type="text">

И вот как я получаю данныена JavaScript:

$scope.dnameform

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

используйте модель как объект и инициализируйте ее в контроллере, как

$scope.formData = {dnameform:""}

Иногда мы не получим значение переменной области видимости, если оно не определено как объект ... недостаток angularjs

0 голосов
/ 21 декабря 2018

В этом случае ng-init приведет к неправильному поведению, если объект user загружен из API служебного вызова, директива ng-init срабатывает до этого.Так что значение dnameform всегда будет undefined.

Скорее, я считаю, что вы должны напрямую использовать user.user_displayname, как в ng-model, не нужно создавать новую переменную ng-model.

<input ng-model="user.user_displayname" type="text">

И где бы вам ни понадобилось значение, вы можете напрямуюиспользуйте $scope.user.user_displayname


ИЛИ

Вы можете назначить переменную dnameform из контроллера, когда завершится вызов службы API пользователя.Тогда вы можете использовать dnameform как в ng-model в поле ввода без ng-init.

apiService.getUser().then(function(res){
   $scope.user = res.data
   $scope.dnameform = user.user_displayname;
}) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...