【问题标题】:AngularJS/Parse.com : $scope.currentUser variable not updatedAngularJS/Parse.com:$scope.currentUser 变量未更新
【发布时间】:2023-03-24 17:16:01
【问题描述】:

我使用parse 和angularjs 来验证用户。这是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 次表单才能更新。

我做错了什么?谢谢。

【问题讨论】:

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


【解决方案1】:

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

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

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

Here is my controller

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多