Я получаю сообщение об ошибке при загрузке данных в угловое выражение. Данные загружаются, но я получаю ошибку $ digest уже в процессе.Углубленный дайджест AngularJS
var dom = angular.element($compile(template)($scope));
$scope.$apply();
var html = $('<div>').append(dom).html();
Я дам вам небольшую часть моего шаблона здесь:.
<b>Name: </b>{{model.project.description}}<br />
<b>Littera: </b>{{model.littera}}<br />
<b>Address: </b>{{model.address}}<br />
Теперь я попытался обертывание $ объем $ применяется() в, если заявление, как показано ниже. Но я слышал, что это плохой способ сделать это. Не имеет значения, насколько я предполагаю, так как это не сработало.
if (scope.$$phase) {
scope.$apply();
}
Удалены ошибки, но теперь привязка данных не работает. Теперь вывод - это выражения, а не фактические данные. Я также попытался поместить $ scope. $ Apply() в функцию $ timeout, но опять же, теперь мы получаем только выражение, а не данные.
Этот код находится в пределах директивы. Я только дал вам этот код, так как остальная часть кода в директиве здесь неактуальна. Что мне нужно сделать, чтобы заставить привязывать данные к работе при использовании $ timeout?
Заранее спасибо.
EDIT: Жизненно важной частью, о которой я забыл сказать, было то, что я считаю, что ошибка для двух выражений, которые пусты. В хром-отладчике они не определены.
Если '' compile' используется внутри фаз ссылки директивы, нам не нужна 'scope. $ Apply()'. У вас есть какой-нибудь plnkr/скрипка для этого? –
'$ apply' принимает функцию как свой первый параметр. Он запустит эту функцию, а затем вызовет '$ digest'. Создайте функцию для операторов '$ compile' и' append (dom) 'и передайте это в' $ apply', ваши данные затем должны заполнить. (Детали: http://jimhoskins.com/2012/12/17/angularjs-and-apply.html) – DRobinson
Я подумывал сделать скрипку для этого. Но эта директива довольно сложна для угловых карт Google, для которых мы ее используем. Таким образом, отгоняя его, чтобы он работал на скрипке, казалось сложной задачей. Я забыл сказать, что код находится в обещании. Внутри .then (function() {}) –