1

Radlistview不呈现源数组。请帮我弄清楚我哪里出错了。这是给我空指针异常。我在下面的部分中包含了代码。Nativescript-ui Radlistview空指针错误

srtdetails.component.html

<GridLayout tkExampleTitle tkToggleNavButton> 
    <RadListView [items]="source"> 
     <template tkListItemTemplate let-item="item"> 
      <ScrollView> 
       <StackLayout orientation="vertical"> 

       <GridLayout class="srtgrid border" rows="auto" columns=" *, *, *"> 

       <Label class="srtlabel " row="0" col="0" textWrap="true" [text]="item.requestid" ></Label> 

       <Label class="srtlabel " row="1" col="1" textWrap="true" [text]="item.requestedon" ></Label> 

       <Label class="srtlabel " row="2" col="2" textWrap="true" [text]="item.requesttype" ></Label> 

       </GridLayout> 
      </StackLayout>    
      </ScrollView>    
     </template> 
    </RadListView> 
</GridLayout> 

strdetails.component.ts

import { Component, ElementRef, OnInit, ViewChild } from "@angular/core"; 
... 

@Component({ 
    selector: "vp-srt-list", 
    moduleId: module.id, 
    templateUrl: './srtdetails.component.html', 
    styleUrls: ["./srtdetails.component.css"], 
    providers: [LoginService,NativeScriptUIListViewModule] 
}) 

export class SrtListComponent implements OnInit{ 

public source: Array<any>; 

constructor(private router: Router, 
    private LoginService: LoginService, 
    private routerExtensions: RouterExtensions){} 
    ngOnInit(){ 
    this.source = this.LoadSrt(); 

}

LoadSrt(): Array<any>{ 
    if (getConnectionType() === connectionType.none) { 
     alert("Oops!! looks like your device is not connected to the internet "); 
     return; 
     }  
     this.LoginService.getAssociatedRequest() 
      .subscribe((response: Array<any>) => { 
      //let data = JSON.stringify(response) 
      this.source = response; 
      console.log ("Response: " +this.source); 
      return this.source; 

     },   
     (error) => { console.log("Error happened", error.message)}, 
     () => { console.log("srt is completed") 
     return this.source; 
     } 
    );   
    } 

} 

login.service.ts

getAssociatedRequest(){ 
let headers = new Headers(); 
    return this.http.get(
    BackendService.requestUrl 
) 
    .map((response) => { 

      return response.json(); 
       // console.log("JSON BODY: ",JSON.stringify(body)); 
       } 
       ) 

    .catch(this.handleErrors); 
    } 
+0

尝试将空数组的初始值赋予您的源属性(无论是在组件的构造函数中还是在初始化属性本身时) –

+0

@NickIliev试过了。仍然得到相同的错误 –

回答

2

交换<RadListView [items]="source"><RadListView [items]="source" *ngIf="source">。这样,它不会呈现,直到它有数据,并且只要源有数据就会填充

+0

这工作。谢谢。 –

+0

我花了一段时间才意识到这一点,当我第一次尝试这个 – mast3rd3mon

+1

,如果你接受这个答案,其他人可以找到这个答案 – mast3rd3mon