NativeScript Angular ListView Rendering [object Object]

Я пытаюсь воспроизвести ListView в Nativescript + Angular и не могу отобразить определенный шаблон. Мой ListView показывает [object Object] вместо шаблона. Я всегда получаю такой результат. Если элементы в моем массиве являются строкой, текст отображается в строке, если это объект, он настаивает на том, чтобы не отображать мой шаблон и отображать [object Object].

Результат, который я получаю, таков:

введите здесь описание изображения

Ниже мой код

events.component.ts

import {Component, OnInit, ChangeDetectionStrategy, Input} from '@angular/core';


@Component({
  selector: "PrincipalEventosListView",
  templateUrl: "pages/principal/eventos/eventos.component.html",
  changeDetection: ChangeDetectionStrategy.OnPush,
})

export class PrincipalEventosComponent  {

  public registros: Array<any>;

    constructor() {

        this.registros = [];
        this.registros.push({tipo: "Teste 1"});
        this.registros.push("String no lugar de objeto.");
        this.registros.push({tipo: "Teste 3"});
        this.registros.push(123);
        this.registros.push({tipo: "Teste 4"});
    }

}

events.component.html

<GridLayout>

<ListView [items]="registros">
    <template let-item="item">
        <Label [text]="item.tipo"></Label>
    </template>
</ListView>


person Eduardo Lagares    schedule 08.12.2016    source источник
comment
Вы должны использовать английский для вопросов здесь ...   -  person Dawid Zbiński    schedule 08.12.2016
comment
@DawidZbiński Я перевел сейчас   -  person Eduardo Lagares    schedule 08.12.2016
comment
глядя на ваш код, он должен работать так, как ожидалось. см. это как ссылку github.com/NativeScript/nativescript-sdk-examples-ng/blob/ также проверьте версии package.json всех угловых связанные зависимости и перестроить приложение.   -  person Nick Iliev    schedule 09.12.2016


Ответы (4)


У меня была такая же проблема, я исправил ее, включив import { NativeScriptModule } from "nativescript-angular/platform"; в модуле, содержащем список.

person bobby nguyen    schedule 25.12.2016

Использование NativeScript 4.1.1:

Вам нужно это в app.module:

import { NativeScriptModule } from "nativescript-angular/nativescript.module";

Но затем в конкретном модуле, ссылающемся на ListView, вам нужно импортировать это:

import { NativeScriptUIListViewModule } from "nativescript-ui-listview/angular";

Я использую RadListView, но я думаю, что это может относиться и к обычному ListView.

person msenne    schedule 25.06.2018

На данный момент вам нужно импортировать NativeScriptCommonModule из 'nativescript-angular/common' в содержащий модуль.

person Yuriy Khan    schedule 02.02.2019

В NativeScript 4.1.0 вы должны включить этот модуль

import { NativeScriptModule } from "nativescript-angular/nativescript.module";

и добавить в импорт

@NgModule({
  ...
  imports: [NativeScriptModule],
  ...
})
person Andrey Pelykh    schedule 19.06.2018