我想传递$ rootScope用户的数据
这是我的设施
userProvider.js
'use strict';
app
.factory('userProvider', function ($rootScope , $http , $location) {
var url='http://127.0.0.1:100/suitecrm/API/Login.php';
function logIn(user) {
$http.post(url,user)
.success(function (response) {
$rootScope.user=response.data;
$location.path('/profile');
console.log(response);
});
}
return {
logIn: logIn
}
});
console.log(response);
通常在控制台中显示数据
这是配置文件的控制器,我想显示当前用户的信息
'use strict';
app
.controller('Profile', function ($scope ,userProvider, $rootScope) {
console.log($rootScope.user);
})
;
但是在Chrome的控制台中显示我未定义。
这是Routing.js
'use strict';
var cacheActive=false;
app.config(function ($stateProvider) {
$stateProvider
.state('homapage', {
cache: cacheActive,
url: '/login',
templateUrl: 'js/views/homepage/Login.html',
controller:'homepageLogin'
})
.state('profile', {
cache: cacheActive,
url:'/profile',
templateUrl:'js/views/profiles/profile.html',
controller:'profile'
})
});
如何传递$ rootScope中的数据并在控制器的视图中显示它们?
谢谢你
答案 0 :(得分:0)
您尚未通过&str.front()
服务调用&str[0]
功能。
logIn()
但是,
我建议你不要使用userProvider
。您可以从工厂获得什么,您可能希望在通话后返回数据:
app
.controller('Profile', function ($scope ,userProvider, $rootScope) {
userProvider.logIn($scope.user);
console.log($rootScope.user);
})
然后,再次,不使用$rootScope
,您可以在app.
factory('userProvider', function($http){
var url = 'http://127.0.0.1:100/suitecrm/API/Login.php';
function logIn(user) {
$http.post(url,user).success(function (response) {
return response;
});
}
return {
logIn: logIn
}
})
控制器上执行操作:
$rootScope
对于位置路由,请在控制器内部而不是工厂中进行。