Ответ 1
В вашем примере сначала вы должны инициализировать свой availableColors
как пустой массив:
$scope.availableColors = [];
Затем вы можете написать свой простой сервис с помощью $http
:
$http.get('data.json').then(
function (response) {
$scope.availableColors = response.data;
$scope.multipleDemo.colors = ['Blue','Red'];
},
function (response) {
console.log('ERROR!!!');
}
);
Итак, теперь вы можете использовать этот код без предварительного определения вашего availableColors
по некоторым значениям.
Демо: http://plnkr.co/edit/BcJOezOABxSuc2fa5lRy?p=preview
В этом примере я добавил файл data.json
, который содержит массив цветов.
Это очень простой пример, но я надеюсь, что он вам поможет. Изменения начинаются с line 118
в файле demo.js
.
Изменить
Если вы хотите динамически обновлять список вариантов, вы можете использовать атрибуты refresh
и refresh-delay
директивы ui-select-choices
.
Первый атрибут, как вы можете догадаться, получает функцию типа
refresh="funcAsync($select.search)"
который будет вызываться каждый раз, когда вы вводите что-либо. И вы можете использовать второй атрибут как
refresh-delay="0"
Как вы можете предположить, он используется для заданной задержки вызова функции refresh
в миллисекундах. По умолчанию для этого значения установлено значение 1000
.
Демо: http://plnkr.co/edit/BcJOezOABxSuc2fa5lRy?p=preview
Я обновил свой плунжер, поэтому решил не писать собственные бэкэнд-функции. Вот почему вы можете проверить это, просто набрав red
в первом поле ui-select
- значения будут получены из другого файла .json
- data1.json
.
Надеюсь, это поможет вам.