1

我正在使用parsewithangularjs来验证用户身份。这是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 次表格才能更新。

我究竟做错了什么 ?谢谢你。

4

1 回答 1

1

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

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

我在使用 Parse 时遇到了类似的问题,我用 $scope.apply() 解决了它。

这是我的控制器

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

于 2013-07-07T08:41:42.327 回答