Что нужно сделать, чтобы исправить состояние гонки при установке 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;
});
Другие вопросы по тегам