AngularJS控制器$scope
在angularJS应用程序中,每个站点都有一个控制器。 在本例中,我有一个站点,其中包含用于创建用户的表单,如果提交了表单,用户将被导航到一个成功页面,该页面总结用户创建并提供有关已创建用户的信息 底部有两个控制器。我的方法是在服务器响应之后,在$rootScope中设置用户名、密码和角色。然后导航到“usercreateresponse”页面,然后使用{{username}、{{password}和{{roles}查看此属性 到目前为止,这是可行的,但这种方法有一个问题:如果我重新加载页面“usercreateresponse”,那么用户名、密码和角色的值就会消失,实际上我不知道为什么,因为我已经在rootscope中设置了值(所以我相信rootscope可能会通过刷新来清理?!) 我现在的问题是,如果我的方法可行,或者有更好的解决方案(例如,通过参数传递值?),只有一个控制器用于用户处理?)。 非常感谢AngularJS控制器$scope,angularjs,angularjs-scope,angularjs-controller,Angularjs,Angularjs Scope,Angularjs Controller,在angularJS应用程序中,每个站点都有一个控制器。 在本例中,我有一个站点,其中包含用于创建用户的表单,如果提交了表单,用户将被导航到一个成功页面,该页面总结用户创建并提供有关已创建用户的信息 底部有两个控制器。我的方法是在服务器响应之后,在$rootScope中设置用户名、密码和角色。然后导航到“usercreateresponse”页面,然后使用{{username}、{{password}和{{roles}查看此属性 到目前为止,这是可行的,但这种方法有一个问题:如果我重新加载页面“
function CreateUserController($scope, $http, $location, $rootScope, $cookieStore) {
$scope.createUser = function(data) {
var dataObj = {
username : $scope.username,
password : $scope.password,
roles: [$scope.role]
};
var res = $http.post('/users/createUser', dataObj);
res.success(function(data, status, headers, config) {
$rootScope.username = data.username;
$rootScope.password = data.password;
$rootScope.role = data.roles;
$rootScope.id = data.id;
$location.path("usercreateresponse");
});
res.error(function(data, status, headers, config) {
alert( "failure message: " + JSON.stringify({data: data}));
});
}
}
成功创建用户的控制器:
function CreateUserResponseController($scope) {
}
为什么不使用$emit或$broadcast来传输包含用户名、密码等的数据对象
$scope.$emit('userCreated', data);
在CreateUserController success中,通过
$scope.$on('userCreated', function(newVal, oldVal) {
$scope.userName = newVal.userName;
....
});
在usercreateresponse(CreateUserResponseControl)中,非常感谢您的回答。我认为$emit应该很少使用,因此我没有使用这种方法。谢谢