【发布时间】:2016-05-06 05:12:45
【问题描述】:
任务是在选择框中选择一个设备,并在另一个页面上显示与名称相关的属性,即名称、类型、设备系列等。
我遇到的问题是数据被设置在第一个控制器中。这很好,但它不会转到使用 DeviceController2 的下一页。 DeviceController2 的警报中没有显示任何值。我只需要将设备发送到下一页。
为此,我的第一个控制器是
App.controller('DeviceController', function($scope,$http,commonDeviceService) {
var self = this;
self.show = function(device){
commonDeviceService.set(device);
alert("Device selected is "+device);
window.open('url to next page');
};
});
commonDeviceService 是我为控制器提供的常用服务。
第二个控制器是
App.controller('DeviceController2', function($scope,$http,commonDeviceService) {
$scope.device = commonDeviceService.get();
alert($scope.device);
});
而commonDeviceService是
App.factory('commonDeviceService', function() {
var shareddata='';
function set(data) {
shareddata = data;
alert("shared data in set call is "+shareddata);
}
function get() {
alert("shared data in get call is "+ shareddata);
return shareddata;
}
return {
set: set,
get: get
};
});
【问题讨论】:
-
是的,一旦重新加载页面,您将丢失数据。您可以使用 $window.sessionStorage 来保存您的数据。那样就不会丢失了。
标签: javascript html angularjs controllers