У меня есть проблема в этой директиве; первый из них заключается в том, что я не вижу ни одного элемента в списке. Тогда иногда он говорит, что ngRepeat имеет повторяющиеся значения, а затем даже если я могу увидеть что-то, что я не могу выбрать и поместить его на вход! Как это возможно? Здесь плункер
http://plnkr.co/edit/vTwOqcN4pm3FgKLYlLu9?p=preview
Кстати, это часть html-кода:
<body ng-controller="MainCtrl">
<tags-input ng-model="tags"add-from-autocomplete-only="true">
<auto-complete min-length="1"
source="loadTags($query)"
template="my-custom-template"></auto-complete>
</tags-input>
<p>Model: {{tags}}</p>
<script type="text/ng-template" id="my-custom-template">
<div class="right-panel>
<span ng-bind-html="$highlight($getDisplayText())"></span>
<h1 style="font-size: 15px!important" class="uk-margin-remove">
{{data.name}}
</h1>
</div>
</script>
</body>
И вот угловое:
var app = angular.module('plunker', ['ngTagsInput']);
app.controller('MainCtrl', function($scope, $http) {
$scope.tags = [];
$scope.loadTags = function(query) {
return $http.get('tags.json', {
cache: true
}).then(function(data) {
$scope.names = data.data.data;
return $scope.names;
});
};
});
Я работал над вашей проблемой и нашел решение простым способом. Я тестировал его, и он работает. Надеюсь, это то, что вы ищете.
Файл углового скрипта
var app = angular.module('plunker', ['ngTagsInput']);
app.controller('MainCtrl', function($scope, $http) {
$scope.tags = [];
$scope.names = [];
$scope.loadTags = function() {
return $http.get('tags.json').then(function(response) {
var data = response.data.data.data;
$scope.names = [];
for (var tag in data)
{
$scope.names.push(data[tag].name);
}
return $scope.names;
});
};
});
HTML файл
<tags-input ng-model="tags" add-from-autocomplete-only="true">
<auto-complete min-length="1"
source="loadTags()"
template="my-custom-template"></auto-complete>
</tags-input>
<p>Model: {{tags}}</p>
использовать этот плункер
http://plnkr.co/edit/QFjUPSUENc8RiqipRT28?p=preview
используйте key-property = "id" and display-property="name
для удаления ошибки дублирования и для отображения списка
Ваш код выглядит хорошо. Единственная проблема, которую я вижу, заключается в том, что в ваших тегах.json, ваши объекты data.data должны быть в виде {id: idVal, text: nameVal}. То есть имя поля отображения должно быть "text" вместо "name".