2016-11-29 85 views
0

我试图从sessionStorage中获取值并将其映射到我的ng模型,但是当我在ng-init中执行它时,它不起作用,但是 。从sessionStorage获取值

的问题是在我实际的代码我是一个NG重复里面,所以我的sessionStorage变得象下面这样:

sessionStorage.getItem(item.itemId) 

HTML代码:

<div ng-app=""> 
    <div ng-controller="MyCtrl"> 

     Not Working <input ng-init = 'name = sessionStorage.getItem("SavedString")' type="text" ng-model="name" > 

     Working <input type="text" ng-model="name1" > 
    </div> 
</div> 

控制器:

function MyCtrl($scope) { 

    sessionStorage.setItem("SavedString","I'm a value saved with SessionStorage"); 

    //RETRIEVE VALUE 
    $scope.name = "test" 
    $scope.name1 = sessionStorage.getItem("SavedString"); 


    $scope.hi = 'Hello World'; 
} 

小提琴: http://jsfiddle.net/393revrn/

回答

1

我也试过用你的方式,但我没有找到一个要求来实现这个......所以我试着在init和附加会话数据中对该模型进行函数调用,然后我可以看到通过使ng-init ='some()'here适当的输出是工作plunker

UPDATE

从一些源,我发现HTML无法直接了解会话变量。

1

ng-init指令访问时,sessionStorage不能被Angular理解;它将被解析和解释,就好像它是一个$ scope函数(我认为这不是)。

因此,为了您的例子来工作,你应该做这样的事情在你的控制器:

$scope.sessionStorage = sessionStorage;