Я следующий код для угловой директивы:Загрузка данные из службы в угловых Директивах с использованием параметра из директивы Scope
directive('searchTerms', ['$http', function ($http) {
return {
scope: { model: "=ngModel", metaDataUrl: "@metaData" },
templateUrl: 'infohelper/SearchTermsTemplate',
link: function ($scope) {...}
controller: function ($scope) {...}
}
}
Для каждого использования директивы, другой URL передается $scope
переменной metaDataUrl
. Исходя из того, что различные метаданные должны быть загружены через службу $http
. И мой вопрос: как я могу убедиться, что метаданные загружены до функции link
? Есть ли что-то похожее на параметр resolve
в службе $routeProvider
, который можно использовать для директив?
Нет, это не правильный способ сделать это. Я хочу избежать этого - ненужные циклы дайджеста. Мне было интересно, почему нет возможности ждать обещания синхронно. – ax1mx2
очевидно, что это нехороший способ, но это обходное решение. Синхронное программирование не рекомендуется для Интернета, вы не можете приостановить все, только для ожидания вызова http. –
В основном вы просите что-то, чего не существует, поэтому вы должны найти обходное решение для удовлетворения ваших потребностей. –