从cookie设置ng-init时如何修复竞争条件

时间:2014-05-20 15:49:21

标签: angularjs race-condition angularjs-ng-init

我需要使用angularjs访问数据,就像使用简单的静态< div ng-init =" data = [' data']" />在必须根据来自cookie的数据设置ng-init属性的上下文中。

这几乎应该可行,但是,我部分使用{{}}来访问数据会返回空字符串。

我怀疑这是一个竞争条件问题。

简化的HTML代码如下(代码在ng-controller中):

<script>
    var data = $.cookie("data");    
    $("#data").attr("ng-init", data);
</script>

<div> Data is '{{data}}'</div>

1 个答案:

答案 0 :(得分:1)

看起来你正在使用jquery来获取cookie。为什么不使用角度$cookie service,它可以让您直接从控制器中访问Cookie。这将消除根本不需要使用ng-init。根据我的经验,ng-init仅在您需要初始化服务器端打印的内容时才有用。

angular.module('test', []).controller('TestCtrl', function($scope, $cookies) {
  $scope.data = $cookies.data;
});