Nativescript-ui Radlistview空指针错误

时间:2017-04-13 14:15:33

标签: angular nativescript angular2-nativescript nativescript-telerik-ui

Radlistview无法渲染源数组。请帮我弄清楚我哪里出错了。这给了我空指针异常。我在下面的部分中包含了代码。

srtdetails.component.html

connection = op.get_bind()
connection.execute("UPDATE my_table SET my_attribute2 = SUBSTRING(my_attribute1, 0, 10) + 'Goodbye' WHERE my_attribute1 = 'Hello'")

strdetails.component.ts

<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> 

}

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();

login.service.ts

 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;
       }
    );         
  }

}

1 个答案:

答案 0 :(得分:2)

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