nativescript-angular: сбой сборки после установки плагинов npm

Я новичок в nativescript/angular, пытаюсь загрузить больше элементов, когда пользователь прокручивает список до конца, я пытался установить разные плагины npm, но приложение не удалось собрать с ошибкой:

Не удалось выполнить задачу ':mergeF0DebugResources'.

/example/platforms/android/src/main/res/iOS/Info.plist: Ошибка: неподдерживаемый тип 'dict'

и я попытался использовать событие loadMoreItems(), оно не работает, наряду с этим загруженным, itemTap также не работает.

    <GridLayout>
    <ListView [items]="convos" (loadMoreItems)="loadMoreItems()" class="small-spacing">
<ng-template let-item="item">
  <FlexboxLayout flexDirection="row">
    <Image  height="5" width="20%" stretch="aspectFill" loadMode="async" [src]='profilePic[item.to]'></Image>
    <StackLayout width="80%" (tap)="chatOpen(item.to)">
        <FlexboxLayout flexDirection="row">  
            <Label [text]="dispName[item.to]" class="medium-spacing" width="70%"></Label>
            <Label [text]="timeSince(item.createdAtTime)" class="medium-spacing pull-right" width="30%"></Label>
        </FlexboxLayout>
        <FlexboxLayout><Label [text]="item.message" class="medium-spacing" width="100%"></Label></FlexboxLayout>
    </StackLayout>
   </FlexboxLayout>
</ng-template>

ТИА.


person Mohammedsanaulla K    schedule 05.09.2017    source источник


Ответы (2)


Вам не нужен какой-либо плагин для этого, так как представление списка поддерживает это -

Встроенное событие loadMoreItemsEvent можно использовать для реализации бесконечной прокрутки в вашем приложении. Бесконечная прокрутка позволяет загружать контент по запросу без необходимости разбиения на страницы.

HTML

<ListView [items]="myItems" (loadMoreItems)="loadMoreItems()">
<template let-item="item" let-i="index">
    <Label [text]="item"></Label>
</template>

TS

import { Component } from '@angular/core';
import { EventData } from 'data/observable';`

@Component({
selector: 'list-test',
styleUrls: ['list-test.css'],
template: 'list-test.html'
})

export class ListTest {
public myItems: string[] = [];
public counter = 0;
constructor() {
    this.myItems = [];
    for (var i = 0; i < 50; i++) {
        this.myItems.push("data item " + i);
        this.counter = i;
    }
}

loadMoreItems() {
    // Load more items here.
    this.myItems.push("data item " + this.counter)
    this.counter += 1;
}}

Ссылка — https://docs.nativescript.org/angular/ui/list-view.html#load-more-items

person Dlucidone    schedule 05.09.2017
comment
Я пробовал это, но функция не запускает @Dlucidone - person Mohammedsanaulla K; 05.09.2017
comment
Можете ли вы поделиться некоторым кодом, так как он отлично работает в моей сборке продукта для iOS и Android. - person Dlucidone; 05.09.2017
comment
‹ListView [items]=convos (loadMoreItems)=loadMoreItems() class=small-spacing› ‹ng-template let-item=item› ‹StackLayout width=80% (tap)=chatOpen(item.to)› ‹FlexboxLayout flexDirection =row› ‹Ярлык [текст]=dispName[item.to] class=medium-spacing width=70%›‹/Label› ‹/FlexboxLayout› ‹FlexboxLayout›‹Label [text]=item.message class=medium-spacing width=100%›‹/Label›‹/FlexboxLayout› ‹/StackLayout› ‹/ng-template› ‹/ListView› - person Mohammedsanaulla K; 05.09.2017
comment
какое определение вы дали в loadMoreItems()? - person Dlucidone; 05.09.2017
comment
loadMoreItems(){ console.log(Загружено); } @Dlucidone - person Mohammedsanaulla K; 05.09.2017
comment
доступна ли эта функция, попробуйте вызвать ее нажатием кнопки - person Dlucidone; 05.09.2017

    import { Component, OnInit } from "@angular/core";
    import { EventData } from 'data/observable';
    import { Router, ActivatedRoute, Params, Data } from '@angular/router';

Я изменил свой порядок импорта на этот, он начал работать. Не знаю, почему, если кто-нибудь может разъяснить мне это.

person Mohammedsanaulla K    schedule 07.09.2017