1

現在単純な Todo である Cloudkit JS で Angular 2 を動作させようとしています。

todo.request.js :

var todorequest = {
    get: function(){
        var container = CloudKit.getDefaultContainer();
        var publicDB = container.publicCloudDatabase;

        var query = {
            recordType: 'todo'
        };

        return publicDB.performQuery(query).then(function (response) {
            if(response.hasErrors) {
                throw response.errors[0];
            } else {
                let vals = [];
                response.records.forEach(function(record){
                    vals.push({title: record.fields['title'].value, text: record.fields['text'].value, date: record.fields['date'].value})
                })
                console.log(vals)
                return vals;
            }
        })
    }
}

これはArray [ Object, Object ]私が望んでいたものであり、これまでのところすべて良好です。

todo.service.tsには次のものがあります。

import { Injectable } from '@angular/core';
import { Todo } from './todo';

declare var todorequest:any;

@Injectable()
export class TodoService {

    constructor() {}

    getTodos() {
        return new Promise<Todo[]>(resolve =>
            todorequest.get() as Todo[] 
            );
    }
}

todorequest.get()から得られるものは、 Object { Symbol(record)_1.k31kpejw2af: Object }. Todo[]で変換してデータを使えるようにするにはどうすればいいですか?正直なところ、何が間違っているのかわかりません。

4

1 に答える 1