Что нужно сделать, чтобы исправить состояние гонки при установке ng-init из файла cookie
Мне нужно получить доступ к данным с помощью angularjs, как это было бы с простым статическим
в контексте, где атрибут ng-init должен быть установлен из поступающих данных из печенья.Это в значительной степени должно работать, однако мое частичное использование {{}} для доступа к данным возвращает пустую строку.
Я подозреваю, что это вопрос состояния гонки.
Упрощенный HTML-код выглядит следующим образом (код находится внутри ng-контроллера):
<script>
var data = $.cookie("data");
$("#data").attr("ng-init", data);
</script>
<div> Data is '{{data}}'</div>
1 ответ
Решение
Похоже, вы используете jquery, чтобы получить cookie. Почему бы просто не использовать угловой $cookie
сервис, который дает вам доступ к куки прямо из вашего контроллера. Это избавит от необходимости использовать ng-init вообще. По моему опыту, ng-init полезен только тогда, когда вам нужно инициализировать то, что распечатано на стороне сервера.
angular.module('test', []).controller('TestCtrl', function($scope, $cookies) {
$scope.data = $cookies.data;
});