2014-04-30 76 views
19

我试图重新指导我的用户,如果他们通过我的表单验证(检查用户名和密码对数据库值)。

验证工作正常,但在我的.Success函数重定向似乎没有工作,它会产生错误:'ReferenceError:$窗口未定义'。

下面的代码:

.success(function(data) { 
    console.log(data); 

     if (!data.success) { 
      // if not successful, bind errors to error variables 
      $scope.errorUserName = data.errors.userName; 
      $scope.errorUserPassword = data.errors.userPassword; 
     } else { 
      // if successful, bind success message to message 
      $scope.message = data.message; 
      $window.location=('twitter.com');  
    } 
}); 

我试图改变位置路径,但似乎没有奏效。有任何想法吗?

谢谢!

LazyTotoro

+0

Twitter.com只是一个占位符! :) – Charkizard

回答

42

$window需要进行注射。

要注入它,只需将它作为参数添加到您的控制器函数中,Angular将自动处理其余部分。

例如:

app.controller('MyController', function MyController($scope, $window) { 

    $window.location = 'http://stackoverflow.com' 
}); 

你可以阅读更多关于AngularJS here依赖注入。

如果您不需要重新加载整个页面,你应该改为注射和使用$location

// get the current path 
$location.path(); 

// change the path 
$location.path('/newValue'); 
+1

谢谢!我只是尝试“document.location.href =''”,它也工作! :D – Charkizard

+1

是的,但注入哪里? –

+0

对于新手来说不是一个完整的答案...哪里是注入,如何将控制器变量与控制器函数内的变量相联系? – Serge

相关问题