У меня есть AngularJS 1.5 директивы в:Как установить переменную в обратном вызове AngularJS?
var assetSearchService = function(proService) {
var assets = [];
var searchAssets = function(searchTerm){
proService.searchAssets(searchTerm).then(function(data){
assets = data.data;
});
};
return {
searchAssets, searchAssets,
assets: assets
};
};
Когда я пытаюсь использовать assetSearchService.assets
в мой контроллер после вызова поиска, данные не установлены в assetService.assets
.
Если я зарегистрирую данные после возврата searchAssets
, я получаю данные.
this.assets
не работает, так как мне получить переменную от обратного вызова?
вместо * замена * 'assets' внутри обратного вызова, вы должны подталкивать данные в существующий массив. try 'assets = assets.concat (data.data);' – Claies
Нет, активы не ссылаются на первоначально объявленные активы var. – mikeb
он делает, но вы заменяете его внутри обратного вызова с помощью другого массива, который разбивает угловые привязки. – Claies