NativeScript ListView не работает. я не вижу данных - PullRequest
0 голосов
/ 29 августа 2018

У меня есть task-component.ts, которые содержат некоторые данные в массиве userTaskList. Теперь я хочу показать эти данные пользователю.

я хочу использовать <ListView> для отображения данных.

вот что я сделал:

task-component.ts:

 public userTaskList: any;
  constructor(private taskService: TaskService, private routerExtensions: RouterExtensions, private zone: NgZone) {
    this.userTaskList = [];
  }

  ngOnInit() {
    this.taskService.getAllTasks().toPromise().then(res => {
      this.userTaskList=res;
      this.zone.run(()=>{})
      console.log("data is here ! ==>>> ", this.userTaskList);
    })

  }

проблемно-component.html:

<ActionBar title="Task List">
  <NavigationButton text="Go Back" icon="res://back" ></NavigationButton>
</ActionBar>
<ListView [userTaskList]="myTasks" >
    <ng-template let-task="task" >
  <StackLayout >
      <Label [text]= task.Name ></Label>
      <Button text="Add" class="submit-button" (tap)="submit()"></Button>
      <Button text="logOut" class="submit-button" (tap)="logOut()"></Button>
      <Button text="ShowToken" class="submit-button" (tap)="Tokenv()"></Button>
  </StackLayout>
</ng-template>
</ListView>

Я не получаю никаких расширений, и даже кнопки исчезают, когда я запускаю его. все, что я вижу, это пустая страница.

Вы можете сказать мне, что я делаю неправильно? Спасибо!

1 Ответ

0 голосов
/ 29 августа 2018

Изменение

<ListView [userTaskList]="myTasks" >

К

<ListView [items]="userTaskList"  >

И изменить:

<ng-template let-task="task" >

К

 <ng-template let-task="item" >

Кроме того, вы забыли " в:

 <Label [text]= task.Name ></Label>

Так и должно быть:

<Label [text]= "task.Name" ></Label>

Listview требует [items] в качестве имени свойства.

Кстати, вам здесь не нужен ngZone. (И дружеский совет, работа с наблюдаемыми. Не обещания).

...