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

How to access the item context inside RadListView tkListItemSwipeTemplate

使用 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 中的当前项目,以便我可以将标签的文本 属性 绑定到简短描述。目前我收到以下错误

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

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

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

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

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

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