Таким образом, у меня есть более чем одна пользовательская директива, называющая обещание внутри той же функции в службе, которая получает данные с обещанием. Эта функция внутри службы получает 4 раза (из-за 4-х директив, вызывающих ее). Это проблема. Я хочу, чтобы это вызывалось один раз, а не 4 раза. Как я могу это сделать?Как я могу использовать несколько директив по одному и тому же обещанию в сервисе, только один раз?
Кроме того, извините, я не могу предоставить свой код. Это просто услуга вызова обещание, то возвращение, что вроде как так
службы:
return {
GetData: function() {
return processData.then(function(response){
return response
});
processData
только кэширование делается в начале файла, где я получаю мои данные с $http.get
.
директив:
serviceName.GetData().then(function(response){
//Do Stuff and what not
})
Почему бы не вызвать эту конкретную функцию внутри контроллера, сохранить полученные данные в области контроллера в переменной области видимости и связать это переменная для директив вместо вызова функции в каждом из них? Кроме того, вы можете добавить 'ng-if =" dataReady "' в свои директивы, чтобы добавлять их только тогда, когда данные становятся доступными. –
SO - это сайт для энтузиастов и профессиональных разработчиков, и мы любим держать его профессиональным. Использование всех кепок и таких вещей, как «LOL», не так. –