我需要在另一个控制器中使用控制器中的作用域。所以我用了一家工厂:
app.factory('myservice',function(){
var mydata=[];
function set(data){
mydata=data;
}
function get(){
return mydata;
}
return {
set:set,
get:get
}
});
然后在包含我需要的范围的控制器中,我设置数据:
myservice.set($scope.value)
在我需要范围的另一个控制器中,我从工厂获得它:
$scope.value= myservice.get()
这似乎工作正常。我的问题是当我刷新我正在使用第二个控制器的页面时$scope.value
变得未定义。
如何解决这个问题?
答案 0 :(得分:1)
服务中的数据不会通过页面刷新持续存在。没有办法解决这个问题。
但是,您可以将数据存储在cookies或localstorage中,然后在页面加载时重新加载该数据。这是一些伪代码:
//Don't forget to add a dependency on ngCookies at the module level!
app.factory('myservice',function($cookies){
var mydata=[];
function set(data){
$cookies.putObject("myData", data);
}
function get(){
return $cookies.getObject("myData");
}
return {
set:set,
get:get
}
});