我正在尝试使用angularfire中的routeParams来查看是否有基于firebase位置存在的数据重定向或执行任何操作的方法。如果我有一个用户配置文件$ routeParam setup,并且user1,(users / user1)存在用户对象,我想显示该配置文件。但是,如果user20不存在用户对象,而不是显示带有空白数据的模板页面,我想重定向到另一个页面。我不知道在哪里拨打这个电话。 这是我的配置文件控制器设置
app.controller('ProfileCtrl',
function ($scope, $routeParams, User) {
$scope.user = User.findUsername($routeParams.username);
和我的用户服务,用于检查用户是否存在
findUsername: function (username) {
if (username) {
return users.$child(username);
}
答案 0 :(得分:1)
怎么样:
app.controller('ProfileCtrl',
function ($scope, $routeParams, User,$location) {
if(!$routeParams.username){
$location.path('/somewhereElse');
}
$scope.user = User.findUsername($routeParams.username);
如果您的意思是要检查用户名是否有效,那么唯一的方法是通过一些检查,最好是服务器端$http
。我建议提供服务来检查服务器是否有用的用户名。
答案 1 :(得分:0)
如果参数是可选的且不存在,那么$ routeParams将是未定义的,上述将失败。为了避免这种情况,只需检查$ routeParams以及
if($routeParams && routeParams.username) {
$scope.user = User.findUsername($routeParams.username);
}