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

时间:2013-07-05 11:22:35

标签: javascript data-binding angularjs coffeescript parse-platform

我正在使用parseangularjs来验证用户身份。这是login函数。

$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

这是表单(在同一页面中使用两次,导航栏下拉列表和页面内容):

%form{"ng-submit" => "doLogin()"}
  %input{"ng-model" => "currentUser.username", type: "text"}
  %input{"ng-model" => "currentUser.password", type: "password"}

  %button.btn.btn-block
    %center Connexion

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

我做错了什么?谢谢。

1 个答案:

答案 0 :(得分:1)

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

“$ apply()用于从角度框架外部以角度执行表达式。(例如,来自浏览器DOM事件,setTimeout,XHR或第三方库)。因为我们正在调用我们需要的角度框架执行适当的范围生命周期的异常处理,执行手表。“

我遇到了与Parse类似的问题,我用$ scope.apply()解决了这个问题。

Here is my controller

PS。请注意,我对angularjs相对较新,上面的代码可能不是最有效的:)