我是 Angularjs 的新手,我正在尝试构建我的第一个应用程序。假设我必须加载两个不同视图的路由:
- 127.0.0.1:8080/站点
- 127.0.0.1:8080/site_details
也许有两条不同的路线不是正确的程序,但这是另一个问题。
我有两个控制器: 控制器 1:
app.controller('controller_1', function($scope, $http, user) {
user.set('Test Example')
});
和 控制器 2
app.controller('controller_2', function($scope, $http, user) {
var xxx = user.get()
});
我想做的是在这两个控制器之间共享数据。为此,我以这种方式进行了服务:
app.factory('user', function($rootScope) {
var savedData = {}
function set(data) {
savedData = data;
}
function get() {
return savedData;
}
return {
set: set,
get: get
}
});
通过环顾四周,似乎构建这样的服务应该可以解决问题。但是,我使用控制器 2 中的函数 get() 获得的总是一个空返回。通过设置断点,我可以看到 set() 和 get() 函数都进入了服务中各自的函数。
这是在属于不同路由的控制器之间共享数据的正确程序吗?
EDIT1 这两个视图以相同的方式构建,并在 ng-view 中加载
<html ng-app="app" ng-controller='controller_1'>
CONTROLLER 1
</html>