Получить значение из текстового поля ввода без повторения ng

0

Я новичок в AngularJS.

Я хочу получить значение из входного текста без ng-repeat, где значение находится из Python.

Значение из Python:

{{user.id}}

Мой ввод текста:

<form ng-submit="SendHttpPostData()">
  <p><input type="text" ng-model="user" value="{{user.id}}"></p>
  <input type="submit" value="Submit" />
</form>

Моя проблема:

  1. Значение user.id не отображается во входном тексте.
  2. Я получаю неопределенный результат при нажатии кнопки "Отправить".
  • 0
    Вы должны установить для объекта пользователя значение python в вашем угловом контроллере, если это возможно.
  • 0
    не имеет смысла устанавливать ng-model целиком как user объект, а не как свойство этого объекта. Иначе не понятно в чем твоя проблема
Показать ещё 4 комментария
Теги:

1 ответ

0

Угловой, по умолчанию, не будет читать value атрибута входа при инициализации привязок данных. Однако вы можете написать директиву, которая сделает это за вас:

app.directive('value', function () {
  return {
    restrict: 'A',
    require: '?ngModel',
    link: function postLink(scope, element, attrs, ngModel) {
      if (!ngModel)
        return;

      var val = attrs.value || element.val() || element.text();
      ngModel.$setViewValue(val);
      ngModel.$render();
    }
  };
});

Это гарантирует, что всякий раз, когда атрибут value появляется вместе с ng-model, он будет использоваться для инициализации привязок. См. Этот Plunker для демонстрации.


Однако учтите, что это не рекомендуемый способ передачи данных в Angular из бэкэнд. Как правило, лучше написать конечную точку API JSON и загрузить данные на стороне клиента с помощью $http или $resource.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню