Javascript AngularJS/Parse.com:$scope.currentUser变量未更新

Javascript AngularJS/Parse.com:$scope.currentUser变量未更新,javascript,data-binding,angularjs,coffeescript,parse-platform,Javascript,Data Binding,Angularjs,Coffeescript,Parse Platform,我正在使用parse和angularjs对用户进行身份验证。这是登录功能 $scope.doLogin = -> Parse.User.logIn $scope.currentUser.username, $scope.currentUser.password, success: (user) -> console.log user $scope.currentUser = user error: (user, erro

我正在使用
parse
angularjs
对用户进行身份验证。这是
登录
功能

$scope.doLogin = ->
    Parse.User.logIn $scope.currentUser.username, $scope.currentUser.password,
      success: (user) ->
        console.log user
        $scope.currentUser = user
      error: (user, error) ->
        console.log error
以下是表单(在同一页面、导航栏下拉列表和页面内容中使用两次):

问题是,无论何时提交表单,我都可以在控制台中看到
user
对象,但是
$scope.currentUser
并不总是得到更新。有时我必须连续提交3到4次表格才能更新


我做错了什么?谢谢。

也许您应该在成功回调中包含$scope.apply()。从Angularjs文档:

$apply()用于从angular框架外部执行angular中的表达式。(例如,从浏览器DOM事件、setTimeout、XHR或第三方库)。因为我们正在调用angular框架,所以我们需要执行适当的异常处理作用域生命周期,执行监视

我在解析时遇到了类似的问题,我用$scope.apply()解决了这个问题


注意,我对angularjs比较陌生,上面的代码可能不是最有效的:)

也许您应该在成功回调中包含$scope.apply()。从Angularjs文档:

$apply()用于从angular框架外部执行angular中的表达式。(例如,从浏览器DOM事件、setTimeout、XHR或第三方库)。因为我们正在调用angular框架,所以我们需要执行适当的异常处理作用域生命周期,执行监视

我在解析时遇到了类似的问题,我用$scope.apply()解决了这个问题


注意,我对angularjs比较陌生,上面的代码可能不是最有效的:)

这不只是因为它是异步的吗?@user1737909我知道,但如何解决这个问题?你可以调用
。然后在promise对象上调用
,不是因为它是异步的吗?@user1737909我知道,但如何解决这个问题?你可以调用
。然后在promise对象上执行
%form{"ng-submit" => "doLogin()"}
  %input{"ng-model" => "currentUser.username", type: "text"}
  %input{"ng-model" => "currentUser.password", type: "password"}

  %button.btn.btn-block
    %center Connexion