Javascript Angular.js中的路由不工作
我有一个angular.js控制器(Javascript Angular.js中的路由不工作,javascript,angularjs,url-routing,Javascript,Angularjs,Url Routing,我有一个angular.js控制器(loginErrorCtrl),当输入提供的数据等于应用程序中定义的指定字符串(data.serverToken)时,该控制器应该重定向到视图(/菜单) 问题是,当我在输入框中键入正确的标记时,$location.path('/menu')在我点击退格键之前不会重定向。如何在成功验证令牌后使其重定向 plunker上的代码列表:正确的答案是按照马克的建议放置$scope.$apply() 在这样的评论中: function loginErrorCtrl($sc
loginErrorCtrl
),当输入提供的数据等于应用程序中定义的指定字符串(data.serverToken
)时,该控制器应该重定向到视图(/菜单
)
问题是,当我在输入框中键入正确的标记时,$location.path('/menu')
在我点击退格键之前不会重定向。如何在成功验证令牌后使其重定向
plunker上的代码列表:正确的答案是按照马克的建议放置$scope.$apply() 在这样的评论中:
function loginErrorCtrl($scope, Data, $location) {
$scope.data = Data;
$scope.validateToken = function(token) {
if (token != null) {
if (token.length == 4) {
if (token == Data.serverToken) {
$location.path('/menu');
$scope.$apply()
} else {
//error
return "Invalid Token please try again";
}
}
}
};
}
正确的答案是按照马克的建议使用$scope.$apply() 在这样的评论中:
function loginErrorCtrl($scope, Data, $location) {
$scope.data = Data;
$scope.validateToken = function(token) {
if (token != null) {
if (token.length == 4) {
if (token == Data.serverToken) {
$location.path('/menu');
$scope.$apply()
} else {
//error
return "Invalid Token please try again";
}
}
}
};
}
设置路径后,尝试添加
$scope.$apply()
。我没有下载您的代码,但听起来您可能在Angular之外调用validateToken()。按键将触发摘要循环。@MarkRajcok它仍然不起作用。我得到一个错误,上面写着:TypeError:Object#在Object上没有“apply”方法。$scope.validateToken
True,scope没有apply
方法,但它确实有$apply
方法——您可能错过了$
@MarkRajcok谢谢您的帮助。我确实漏掉了$
,但这里是奇怪的部分。在chrome中,我得到错误:error:$digest已在进行中,出现错误(.如果可以,请下载代码片段,它只有36kb..谢谢!不要在下载中放置代码…将永远不会被查看。请将其本身放入问题中,或将演示放在一起,或尝试添加$scope.$apply()
设置路径后。我没有下载您的代码,但听起来您可能正在调用validateToken()在Angular之外。按键将触发摘要循环。@MarkRajcok它仍然不起作用。我收到一个错误,上面写着:TypeError:Object#在Object上没有“应用”方法。$scope.validateToken
True,scope没有apply
方法,但它有$apply
方法——您可能错过了$
@MarkRajcok谢谢你的帮助。我确实省略了$
,但这里是奇怪的部分。在chrome中,我得到错误:error:$digest已在进行中(.如果可以的话,请下载该代码段,它只有36kb..谢谢!不要在下载中放置代码…将永远不会被看到。请将其本身放入问题中,或将演示放在或中