尽管在用户输入正确的用户名和密码后应用$ scope。$ apply(),但isV(boolean)的值不会改变。 $ scope。$ digest()也无法正常工作
app.controller('validateCtrl', function($scope,$location) {
Parse.initialize("PARSE APP ID");
Parse.serverURL = 'PARSE SERVER URL'
$scope.isV="false";
$scope.submit = function(){
var username =$scope.username;
var password = $scope.password;
Parse.User.logIn(username, password, {
// If the username and password matches
success: function(user) {
alert('Welcome!');
console.log("welcome");
$scope.$apply(function(){
$scope.isV="true";
});
},
// If there is an error
error: function(user, error) {
alert(error);
}
});
console.log($scope.isV);
};
});
答案 0 :(得分:1)
进一步参考我的评论作为答案: 1)首先在帖子上阅读Patrick的评论 2)解决方案: 无需在apply函数中设置isV值,但您可以在之后调用它,如下所示:
$scope.isV = true;
$scope.$apply();
此外,console.log()也应该在成功之内,否则它将被不确定地调用 - 可能在查询成功之前。
答案 1 :(得分:0)
尝试使用此代替$ scope。$ apply():
$timeout(function() {
$scope.isV = "true";
});
您必须在控制器中注入$ timeout以使其正常工作。