2017-01-16 59 views
0

我一直在尋找解決方案,沒有運氣,我試圖使用observablearray的索引,但控制檯總是拋出錯誤和渲染的視圖不顯示任何東西,但空白標籤{{ $index }}被寫入。

enter image description here

回答

1

,因爲是復讀沒有實現這樣的邏輯,你不能訪問通過$指數的指數。您可以爲每個數組項目創建自己的ID,然後將其用作索引。 例如

page.ts

items.forEach(element => { 
    element.id = id; 
    id++; 
}); 

page.xml

<Repeater items="{{ items }}"> 
    <Repeater.itemsLayout> 
     <StackLayout /> 
    </Repeater.itemsLayout> 
    <Repeater.itemTemplate> 
     <Label text="{{ id }}" textWrap="true" /> 
    </Repeater.itemTemplate> 
</Repeater> 

然後你可以用螺紋視圖的BindingContext中挖掘特定項目。

exports.onTap = function(args) { 
    var item = args.view.bindingContext; 
    console.log('item.id', item.get('id')); 
}; 
+0

所以我真的需要手動做到這一點?這是不知何故傷心有額外的邏輯... :) –

+0

或使用listview :) https://docs.nativescript.org/api-reference/interfaces/_ui_list_view_.itemeventdata.html –

+0

如果你想實現這個,你可以添加此代碼'dataItem [「$ index」] = i; '這行後https://github.com/NativeScript/NativeScript/blob/master/tns-core-modules/ui/repeater/repeater.ts#L150,然後你將有$索引你的中繼器 - 你將不得不或者鏈接你的tns-core-modules或者在每個npm安裝後直接在node_modules文件夾中修改 –