2017-09-08 39 views
5

Tôi mới sử dụng NS và tôi đang cố gắng hiển thị danh sách hành khách trong danh sách các chuyến đi (mỗi chuyến đi có nhiều hành khách). Vì vậy, tôi đã cố gắng để đưa một listview (hành khách) bên trong một listview toàn cầu (rides), listview cho rides làm việc nhưng không cho hành khách (rõ ràng), tôi không nghĩ rằng đó là cách đúng để làm điều đó.NativeScript - mảng trong listview

đây là mã của tôi:

rides.xml:

<ListView items="{{ ridesList }}" id="ridesList"> 
    <ListView.itemTemplate> 
    <!-- Rides --> 
    <StackLayout class="box" orientation="vertical"> 
     <GridLayout class="boxHeader" rows="auto" columns="*"> 
     <Label class="title" verticalAlignment="center" horizontalAlignment="left" text="{{reference}}" /> 
     </GridLayout> 
     <StackLayout class="boxContent" orientation="vertical"> 
     <GridLayout class="checkpoints" rows="auto, auto" columns="80, *, 60"> 
      <!-- --> 
      <ListView items="{{ passagers }}" id="passagersList"> 
      <ListView.itemTemplate> 
       <StackLayout class="timedate" orientation="vertical" row="0" col="0"> 
        <Label class="time" text="14:32" /> 
        <Label class="firstname" text="{{firstname}}" /> 
       </StackLayout> 
       [...] 
       </ListView.itemTemplate> 
      </ListView> 
     </GridLayout> 
     </StackLayout> 
    </StackLayout> 
    <!-- /Rides --> 
    </ListView.itemTemplate> 
</ListView> 

rides.js

var ride = new RideViewModel([]); 
[...] 
exports.loaded = function(args) { 
    var page = args.object; 
     page.bindingContext = ride; 

      ride.futurCourse().then(function(data) { 
           [...] 

           ride.fillFuturCourse(data); 
      }); 
}; 

đi-view-model.js

viewModel.fillFuturCourse = function(data){ 

    var testdModel = new ObservableArray(); 
    var jsone = JSON.parse('{"course":[{"id":"5","reference":"test","passagers":[{"firstname":"julien"},{"firstname":"andre"}]},{"id":"6","reference":"RF7878788"}]}'); 
    testdModel= jsone.course; 
    viewModel.set("ridesList",testdModel); 
}; 

Cảm ơn!

Trả lời

1

Vì vậy, tôi tìm thấy giải pháp, sử dụng repeater, mà không quên để bao gồm một cách bố trí toàn cầu sau khi lặp lại (GridLayout đây)

rides.xml:

<ListView items="{{ ridesList }}" id="ridesList"> 
    <ListView.itemTemplate> 
    <!-- Rides --> 
    <StackLayout class="box" orientation="vertical"> 
     <GridLayout class="boxHeader" rows="auto" columns="*"> 
     <Label class="title" verticalAlignment="center" horizontalAlignment="left" text="{{reference}}" /> 
     </GridLayout> 
     <StackLayout class="boxContent" orientation="vertical"> 
     <GridLayout class="checkpoints" rows="auto, auto" columns="80, *, 60"> 
      <!-- --> 
     <Repeater items="{{ passagers }}"> 
      <Repeater.itemTemplate> 
       <GridLayout class="checkpoints" rows="auto, auto" columns="80, *, 60"> 
         <StackLayout class="timedate" orientation="vertical" row="0" col="0"> 
          <Label class="time" text="14:32" /> 
          <Label class="firstname" text="{{firstname}}" /> 
          </StackLayout> 
          [...] 
       </GridLayout> 
      </Repeater.itemTemplate> 
     </Repeater> 
     </GridLayout> 
     </StackLayout> 
    </StackLayout> 
    <!-- /Rides --> 
    </ListView.itemTemplate> 
</ListView> 
Các vấn đề liên quan