Почему представление списка в Nativescript с Typescript приносит ошибку self.родитель.родитель не объект?

Update: проблема заключалась в отсутствии понимания синтаксиса.
И следующий вопрос был написан с общим синтаксисом в результате
в Примере, который не создает ошибку. См. ответ для
объяснение.

Похож на этот вопрос, но я следую за ответом, который дается и есть новый вопрос.

вызвано: undefined не является объектом (оценка
‘self.родитель.родитель.контекст.item.имя’)

почему он ссылается на себя.родитель.родитель? и не родитель.ребенок? в этом ли заключается моя проблема?

приложение.деталь.формат html

<TabView #tabview [selectedIndex]="tabindex" class="">

        <DockLayout *tabItem="{title: 'Tab1'}">
            <StackLayout dock='left'>
                <ListView [items]="items">
                    <template let-item="item">
                            <StackLayout>
                                <Label [text]='item.name' textWrap="true"> </Label>
                            </StackLayout>
                    </template>
                </ListView>
             </StackLayout>
        </DockLayout>


    </TabView>

приложение.деталь.ts

import { Component, OnInit } from "@angular/core";
import { Page } from "ui/page"
import { ListView } from "ui/list-view"
import { Item } from "../item";
import { ItemService } from "../../services/item.service";
import dockModule = require("ui/layouts/dock-layout");




@Component({
  selector: "my-app",
  templateUrl: "./app.component.html",
  providers: [ItemService]
})
export class AppComponent implements OnInit{ 

  public items: Item[];

  constructor(private itemService: ItemService) { 

  };



  getItems(): void {
    this.itemService.getItems().then(items => this.items = items);
  }
  ngOnInit(): void {
    this.getItems();
  }


}

пункт.ts

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

пункт.услуга.ts

import { Injectable } from '@angular/core';

import { Item } from '../item';
import { ITEMS } from '../database/mock-items';

@Injectable()

export class ItemService {
    getItems(): Promise<Item[]> {
    return Promise.resolve(ITEMS);
  }
}

1 ответ

  1. Для всех, кто сталкивается с этой или подобной проблемой.

    В конце концов, возможно, это интуитивно понятно для всех остальных, но я думал, что это простое совпадение, что все использовали <template let-item="item">в качестве своего кода. По правде говоря, код выше будет работать, потому что тег шаблона написан правильно. Но проблема, с которой я столкнулся, заключалась в том, что я попытался написать синтаксис с другим ключевым словом. <template let-item="account">. По сравнению с использованием *ngFor "let account of accounts"это даст

    не объект

    ошибка, как я упоминал выше. При создании вопроса я редактировал неосознанно, чтобы отразить правильный синтаксис.