Получение неопределенной ошибки при попытке добавить массив - PullRequest
0 голосов
/ 25 октября 2018

Когда пользователь нажимает на кнопку, я должен добавить значение в массив образца.Ниже я разместил код:

sample_apps.json:

{
     "user": {
        "userId": "maxwell",
        "sample": [

        ]
    }
}

app.component.ts:

import { Component } from "@angular/core";
import { OnInit } from "@angular/core";
import { ObservableArray } from "tns-core-modules/data/observable-array/observable-array";
import { AppService } from "~/app.service";
import { Sample } from "~/sample";

@Component({
    selector: "ns-app",
    templateUrl: "app.component.html",
})

export class AppComponent implements OnInit {

    public obsArr: ObservableArray<Sample> = new ObservableArray<Sample>();


    constructor(private samService: AppService) {

    }

    ngOnInit(): void {

        this.obsArr = this.samService.sampleApps();



    }
    public addSample() {
        console.log("Addding Value");

       this.obsArr[0].samArr.push(3);
       for (let i = 0; i < this.obsArr.length; i++) {
        console.log("Get(" + i + ")", this.obsArr.getItem(i));
    }
    }

}

app.component.html:

<StackLayout>
<Button text="Add Sample" (tap)="addSample()"></Button>
</StackLayout> 

app.service.ts:

import { Injectable } from "@angular/core";
import { Sample } from "~/sample";
import { ObservableArray } from "tns-core-modules/data/observable-array/observable-array";
var samJsonData = require("~/sample_apps.json");

@Injectable()
export class AppService {

    public sampleApps(): ObservableArray<Sample> {

        console.log("SampleData", JSON.stringify(samJsonData));

        var sampleArrayList: ObservableArray<Sample> = new ObservableArray<Sample>();

         let sample : Sample = new Sample();
         sample.sampleUserId = samJsonData.user.userId;
         sample.samArr = samJsonData.user.sample;
         sampleArrayList.push(sample);

        return sampleArrayList;
    }

}

Образец.ts:

  import { ObservableArray } from "tns-core-modules/data/observable-array/observable-array";


export class Sample{

    sampleUserId : number;

    samArr: ObservableArray<any> = new ObservableArray<any>();;    
}

Получение ошибка времени выполнения :

ОШИБКА КОНСОЛИ [собственный код]: ОШИБКА TypeError: undefined не является объектом (вычисление'this.obsArr [0] .samArr')

Ожидаемый результат:

, когда пользователь нажмет кнопку Добавить образец, я ожидал, что будет вывод, как показано ниже:

{
     "user": {
        "userId": "maxwell",
        "sample": [
           12
        ]
    }
}

Когда пользователь нажимает кнопку, в этот образец массива необходимо добавить число.

1 Ответ

0 голосов
/ 25 октября 2018

Я изменил:

this.obsArr[0].samArr.push(3);

на это:

this.obsArr.getItem(0).samArr.push(3);

, чтобы решить эту проблему.

Теперь я получил ожидаемый результат в консоли:

 Get(0) {
"samArr": [
3
],
"sampleUserId": "maxwell"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...