REST-Response未完全填充到js-object

时间:2016-07-02 12:05:43

标签: javascript angularjs rest

我有休息服务来获取有关人员的信息。我还有一个角度应用程序,其中显示(和编辑)信息。 angular-app使用$ q从服务器获取信息,如果我直接查看响应,我会得到以下信息:

[{"data":{"id":12,"firstname":"John","lastname":"Milton","active":true},"status":200,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"url":"http://someurl/rest/persons/12","headers":{"Accept":"application/json"},"cached":false,"withCredentials":true},"statusText":"OK"}]

我们可以看到,这个人有一个名字。此外,firstname也显示在输入框中,我使用ng-model =“ctrl.person.firstname”。当我将此人登录到控制台时,它也没关系:

{id: 12, firstname: "John", lastname: "Milton", active: true}

但是,当我只想以静态方式{{ctrl.person.firstname}}输出表单上的名字时,它是空的....然而,当我进一步查看我发现的对象时:

Object {persons: Array[0], person: Object}
person: Object
active: true
firstname: undefined
id:12
lastname:"Milton"
__proto__:Object
persons: Array[0]
__proto__:Object

所以,在这里我们看到firstname是“undefined”。我对我的代码进行了一些查看,没有一行更改了firstname,我现在被困了....而且 - 表单无法成功提交,因为收件箱包含firstname,但验证器没有找不到名字......

而且,我第一次忘记告诉你的是:除了这一个人之外,还有一些人工作正常,有些人就像这样失败了。

以下是获取数据并记录数据的代码(输出如上所示):

        angular.forEach(urls, function (url) {
            urlCalls.push($http.get(url.url));
        });

        $q.all(urlCalls)
            .then(function (results) {
                    console.log(JSON.stringify(results));
                    console.log(results); ...

url.url是一个(或多个)要获取的网址。

1 个答案:

答案 0 :(得分:0)

好的,我发现了问题。在数据库中有一些数据后,我在UI中添加了验证器,并且存在问题。 Min-Length(不知道为什么这么短)目前是5 - >约翰是4 - >因此ng-model = ... firstname将获得指定值。