服务返回的对象的属性不可用

维旺迪

我有一个网页,用户可以在其中注册一个帐户。我做了一个简单的指令,检查用户名是否已被使用,如果使用了该用户名,则该用户名会使表单字段无效。

我的指令调用PHP Web服务,该服务检查数据库并返回具有该用户名状态的JSON对象。

我的指令看起来像这样:

link: function(scope, elm, attrs, c) {
    elm.bind('blur', function() {
        var result = accountService.uniqueUser(elm.val());
        console.log(result);
        console.log('A: '+result.usernameIsTaken);
    }
});

如您所见,我做了两个console.logs第一个返回以下内容:

Resource {$promise: Object, $resolved: false, $get: function, $save: function, $query: function…}
$promise: Object
$resolved: true
usernameIsTaken: false
__proto__: Resource

因此,您可以看到它“应该”包含property userNameIsTaken但是当第二个console.log触发时,它返回:

A: undefined

为什么我不能那样访问该属性?undefined当第一个console.log明显表明它应该在里面时,为什么给我

我在这里想念什么吗?

斯卡兹

您的问题是您正在向服务器发出异步请求,但是希望其结果立即可用。

相反,您可以将成功回调传递给该$promise对象,Resource以便在数据可用时处理该数据:

result.$promise.then(function(data) {
   console.log(data.usernameIsTaken);
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章