Nativescript radListView不显示Item

时间:2018-01-03 13:07:40

标签: angular nativescript radlistview

概述

Nativescript radListView不会在ios和android os上显示组件中的绑定项。
操作栏和通常的ListView显示数据但radlistview不显示数据。 控制台显示没有错误。 但我看到下一个存储库中的RadListView可以工作 - > https://github.com/telerik/nativescript-ui-samples-angular

环境

我的开发环境如下。

os:macOS sierra 10.12.6
节点:v6.12.0
npm:3.10.10
在package.json

之后可以看到nativescript和其他人

考虑

我觉得这个问题是关于这些...的 但我无法改进。

  1. 角度指示
  2. 初始化可观察数组
  3. 代码

    我在创建ui-test -ng'之后就像下面的角度实现了RadListView。

    组件

    export class ItemsComponent implements OnInit {
        private _dataItems: ObservableArray<Item>;
    
        constructor() {
        }
    
        get dataItems(): ObservableArray<Item> {
            return this._dataItems;
        }
    
        ngOnInit() {
            this._dataItems = new ObservableArray([
                { id: 1, name: "Ter Stegen", role: "Goalkeeper" },
                { id: 3, name: "Piqué", role: "Defender" },
                { id: 4, name: "I. Rakitic", role: "Midfielder" }
            ]);
        }
    }
    

    HTML

    <ActionBar title="My App" class="action-bar">
    </ActionBar>
    
    <GridLayout>
        <RadListView [items]="dataItems">
            <ng-template let-item="item">
                <StackLayout>
                    <Label class="nameLabel" text="text"></Label>
                    <Label class="nameLabel" [text]="item.name"></Label>
                    <Label class="descriptionLabel" [text]="item.role"></Label>
                </StackLayout>
            </ng-template>
        </RadListView>
    </GridLayout>
    

    的package.json

    {
      "description": "NativeScript Application",
      "license": "SEE LICENSE IN <your-license-filename>",
      "readme": "NativeScript Application",
      "repository": "<fill-your-repository-here>",
      "nativescript": {
        "id": "org.nativescript.uitest",
        "tns-ios": {
          "version": "3.3.0"
        }
      },
      "dependencies": {
        "@angular/common": "~5.0.0",
        "@angular/compiler": "~5.0.0",
        "@angular/core": "~5.0.0",
        "@angular/forms": "~5.0.0",
        "@angular/http": "~5.0.0",
        "@angular/platform-browser": "~5.0.0",
        "@angular/platform-browser-dynamic": "~5.0.0",
        "@angular/router": "~5.0.0",
        "nativescript-angular": "5.0.0",
        "nativescript-fresco": "^3.0.2",
        "nativescript-intl": "^3.0.0",
        "nativescript-pro-ui": "3.3.0",
        "nativescript-unit-test-runner": "^0.3.2",
        "rxjs": "^5.5.2",
        "tns-core-modules": "3.4.0",
        "zone.js": "~0.8.2"
      },
      "devDependencies": {
        "nativescript-dev-typescript": "~0.5.0",
        "typescript": "~2.4.2"
      }
    }
    

3 个答案:

答案 0 :(得分:2)

我确实得到了您的代码并将其放入home.component 在tns创建uitest --ng之后 然后tns插件添加nativescript-ui-listview TNS平台删除Android tns平台添加android tns构建android tns运行android

如果您不忘记将该模块导入到home.module.ts中,它将起作用: NativeScriptUIListViewModule

import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core";
import { NativeScriptCommonModule } from "nativescript-angular/common";
import { NativeScriptUIListViewModule } from "nativescript-ui-listview/angular";

import { HomeRoutingModule } from "./home-routing.module";
import { HomeComponent } from "./home.component";

@NgModule({
  imports: [
    NativeScriptCommonModule,
    HomeRoutingModule,
    NativeScriptUIListViewModule
],
declarations: [
    HomeComponent
],
schemas: [
    NO_ERRORS_SCHEMA
]
})
export class HomeModule { }

与此item.model.ts

export class Item {
  id: number;
  name:string;
  role: string;
}

重要

在另一个项目中,直到我将这些行添加到app.module.ts中,它才起作用

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

@NgModule({
imports: [
    ...
    NativeScriptUIListViewModule

答案 1 :(得分:0)

您是否尝试过_dataItems代替dataItems?您似乎已经定义了一个itemsource并在RadListView中没有_的情况下引用它。

答案 2 :(得分:0)

我解决了自己。 RadListView需要一个getter和一个ObservableArray实现,并且需要正确的html编码。 我没有填写像row这样的参数。

但我不明白如何使用radListView。 现在我遇到了另一个GridLayout的radListView布局。