如何访问RadListView tkListItemSwipeTemplate中的项上下文

时间:2018-02-06 08:38:55

标签: nativescript nativescript-angular

使用NativeScript 3 + Angular 5.

我需要允许用户在RadListView中滑动项目以显示有关该项目的简短描述。

<RadListView 
        [items]="featuredVideos"
        pullToRefresh="true" 
        selectionBehavior="None"
        (itemSwipeProgressStarted)="onSwipeCellStarted($event)" 
        swipeActions="true" 
        (pullToRefreshInitiated)="onPullToRefreshInitiated($event)">
        <ng-template tkListItemTemplate let-item="item">
            <VideoComponent [video]="item"></VideoComponent>
        </ng-template>
        <ng-template tkListItemSwipeTemplate let-item="item">
            <GridLayout columns="*, 500" class="gridLayoutLayout">
                <StackLayout id="short-desc" col="1">
                    <Label [text]="item.shortDescription" class="body" verticalAlignment="center" horizontalAlignment="center"></Label>
                </StackLayout>
            </GridLayout>
        </ng-template>
    </RadListView

我希望能够访问 tkListItemSwipeTemplate 中的当前项目,以便我可以将标签的text属性绑定到简短描述。目前我收到以下错误

JS: ERROR TypeError: Cannot read property 'shortDescription' of undefined

1 个答案:

答案 0 :(得分:0)

我知道这个问题现在有点老了,但是对于那些来这里寻找答案的人来说,我已经设法解决了这个问题。将您的标签文本绑定到不同的值,即:

<Label [text]="myLabelText"...

然后在你的onSwipeCellStarted回调中,你可以使用ListViewEventData参数的index属性并适当地设置'myLabelText',例如:

onSwipeCellStarted(args: ListViewEventData) {
   ...
   this.myLabelText = featuredVideos[args.index].shortDescription;
}

这应该让你摆脱困境。希望它有所帮助:)