Итак, я использую Typeahead для получения информации из json-файла. Получил это, чтобы работать, никаких проблем. Но я хотел бы «автозаполнять» несколько других полей ввода, когда я выбрал объект в первом.Угловой-UI Bootstrap Typeahead, несколько выходных?
Скажем, первое поле выглядит следующим образом:
<input type="text" class="form-control" id="supertag" ng-model="selected" uib-typeahead="title.title for title in tags | filter:$viewValue | limitTo:8"/>
Он отображает title.title в этом поле ввода, здорово! Я пытался подойти к этой дилемме несколькими способами, но я не могу заполнить остальные поля ввода, когда первый выбран и готов. Я хотел бы иметь что-то вроде title.subtitle на следующем, но, похоже, это не так прямо.
Что мне не хватает? Это не работает, например:
<input type="text" class="form-control" id="rubrik" value="{{title.subtitle}}"/>
Спасибо!
Edit: JSON выглядит примерно так:
{
title: 'title',
subtitle: 'subtitle',
id: 'id'
},
{
title: 'title',
subtitle: 'subtitle',
id: 'id'
},
Edit: Дополнительного код для сравнения между различными файлами JSon.
Так это то, что поле ввода указывает:
$http.get(tagUrl)
.then(function(res) {
$scope.tags = res.data;
})
И onSelect:
$scope.onSelect = function($item, $model, $label) {
$scope.id = $item.id;
$scope.title = $item.title;
$scope.selected = $item.selected;
$scope.subtitle = $item.subtitle; <- undefined because it only exists in JSON2, not in JSON1.
console.log($scope.id);
};
Вот где я хотел бы функцию, чтобы сделать сравнение по идентификатору входов. Он всегда будет существовать в JSON1 (tagUrl), но я также хочу, чтобы он выглядел, если он существует в JSON2 (superUrl), прежде чем идти дальше (а также, если он существует, установите $ scope.subtitle = $ item.subtitle в соответствующее поле ввода) , Я пробовал разные подходы с операторами if, но в лучшем случае, я не знаю.
У меня есть это для ng-repeat, в котором перечислены все суперуэрлы на странице, которые могут быть полезны для получения того, что я хочу.
$http.get(listSuperUrl)
.then(function(res) {
$scope.current = res.data;
})
, чтобы проверить, если superUrl существует, то нужно использовать truthy. В принципе, вы можете сделать что-то вроде if (superUrl), это скажет вам, существует ли он. – Leibniz