我有一个angular.js控制器(loginErrorCtrl
),当输入提供的数据等于应用程序中定义的指定字符串时,它应该重定向到视图(/menu
)( Data.serverToken
)。
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');
} else {
//error
return "Invalid Token please try again";
}
}
}
};
}
问题是,当我在输入框中输入正确的标记时,$location.path('/menu')
不会重定向,直到我点击退格。如何在成功验证令牌后重定向?
关于plunker的代码清单:Angular JS routing
答案 0 :(得分:1)
正确答案是将$ scope。$ apply()作为Mark建议 在评论中如此:
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";
}
}
}
};
}