0
목록이 있는데 목록 항목의 값을 가져 오려고합니다. 나는 내가이 값을Angular2가있는 NativeScript에서 요소 값 가져 오기
onItemTap(event){
let itemValue = this.myItems[event.index];
console.log(itemValue);
}
이를 얻기 위해 다음과 같은 작업을 수행 할 수
import { Component,ViewChild,ElementRef } from "@angular/core";
import {topmost} from "ui/frame";
import {ListView} from "ui/list-view";
export class AppComponent {
@ViewChild("myFoo") myFooRef: ElementRef;
public myItems = [];
constructor() {
this.myItems.push("1");
this.myItems.push("2");
this.myItems.push("3");
}
onItemTap(event){
}
}
다음 한 타이프에서
<ListView [items]="myItems" (itemTap)="onItemTap($event)">
<template let-item="item" let-i="index" let-odd="odd" let-even="even">
<StackLayout [class.odd]="odd" [class.even]="even">
<Label #myFoo id="grocery-list" [text]='"Value is: " + i'></Label>
</StackLayout>
</template>
을 다음과 같이
뷰입니다 얻을 것이다 배열의 값 그러나이 배열의 값을 반환합니다.
보기에서 볼 수 있듯이 문자열에 Value is
값이 추가되었습니다.
그럼 어떻게 접근 할 수있는 라벨의 text
속성에 액세스 할 수 있습니까?
에. id가 인덱스를 기반으로하지 않더라도 텍스트 값을 얻고 있습니다. – krv
이 ID를 추가하는 것은 각도 바인딩을 기반으로하지만 인덱스 기반이 아닙니다. 그래서 나는이 [id] = " 'lbl'+ i"'대신'[id] = " 'lbl'"'을 가지고 있고 여전히 작동합니다. 또한이'id = "lbl"'도 잘 작동합니다. – krv
템플릿이 동일한 텍스트를 사용하는 한 예상대로 작동 할 것입니다 ... 여전히 동일한 ID를 가진 여러 항목을 갖는 것은 모든 규칙에 위배됩니다 색인을 사용하여 고유 한 ID를 작성하지 않으면 어떤 일이 벌어 지는지). 예를 들어 목록에 itemTemplates를 사용하고 10 개의 항목이있는 경우 모두 동일한 ID를 갖습니다. 어떻게 3 번째 항목을 가져 옵니까? –