我正在使用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次提交表格才能更新。
我做错了什么?谢谢。
答案 0 :(得分:1)
也许您应该在成功回调中包含$ scope.apply()。来自Angularjs文档:
“$ apply()用于从角度框架外部以角度执行表达式。(例如,来自浏览器DOM事件,setTimeout,XHR或第三方库)。因为我们正在调用我们需要的角度框架执行适当的范围生命周期的异常处理,执行手表。“
我遇到了与Parse类似的问题,我用$ scope.apply()解决了这个问题。
PS。请注意,我对angularjs相对较新,上面的代码可能不是最有效的:)