Nativescript如何在View XML中创建if条件

时间:2017-02-18 23:23:59

标签: nativescript

无论如何在nativescript的XML文件中执行if条件? (没有角度)

if

<Card:CardView class="cardStyle" margin="10" elevation="40" radius="5">
  <Slider value="18" minValue="5" maxValue="30" />
</Card:CardView>

else

<Card:CardView class="cardStyle" margin="10" elevation="40" radius="5">
  <Label text="Example" class="h3" margin="10" />
</Card:CardView>

4 个答案:

答案 0 :(得分:2)

你可以做的是使用布尔值property(在其get函数中具有你想要的条件)并将其绑定到let image = UIImage(named: "yourimage.png") let imageView = UIImageView(image:image) self.navigationItem.titleView = imageView 的可见性。

答案 1 :(得分:2)

看起来您可以使用可见性从模板文件显示/隐藏:

在XML文件中:即' sample-page.xml '

<Button text="{{ isShowing ? 'Hide Me' : 'Show Me' }}" tap="toggleShowing"/> <!-- Notice missing interpolation in Button tag -->
<Label text="Showing Hidden Element" visibility="{{ isShowing ? 'visible' :  'collapsed' }}"/> 

在页面文件中:即' sample-page.ts '

  

让模型= new ViewModel();

     

// main-page.xml中附加的页面“已加载”事件的事件处理程序   导出函数pageLoaded(args:observable.EventData){

 const page = <Page>args.object;
 page.bindingContext = model;
     

}

     

导出功能toggleShowing(){

 model.set('isShowing', !model.get('isShowing'));
     

}

在视图模型中:即' sample-view-model.ts '

  

isShowing:boolean = false;

答案 2 :(得分:1)

我发现这样做的唯一方法是使用页面的navigatingTo事件:

export function navigatingTo(args: EventData) {
    let page = <Page>args.object;
    var myLayout = <StackLayout>page.getViewById("myLayout");
        if (condition) {
            let segmentedBar = new SegmentedBar;  
            ...
            myLayout.addChild(segmentedBar);
        }
        else {
            let button: Button = new Button;
            ...
            myLayout.addChild(button);
        }

模板文件中没有可能: - /

答案 3 :(得分:0)

可以使用ng-container来完成。例如 <ng-container *ngIf="true">Your logic here....</ng-container>