将[NgStyle]与条件组合(if..else)

时间:2016-05-05 13:09:22

标签: angular angular2-template

我看过NgStyle Documentation For Angular2。对我来说有点困惑。关于如何使用NgStyle与条件(if ... else)来设置任何元素的背景图像的任何想法?

10 个答案:

答案 0 :(得分:46)

ngStyle绑定中使用三元运算符将作为if / else条件。

<div [ngStyle]="{'background-image': 'url(' + value ? image : otherImage + ')'}"></div>

答案 1 :(得分:46)

也可以使用这种条件:

<div [ngStyle]="myBooleanVar && {'color': 'red'}"></div>

它需要更少的字符串连接...

答案 2 :(得分:8)

以上答案对我不起作用,所以我决定改进这个。

您应该使用url(''),而不是有价值。

<li *ngFor="let item of items">
  <div 
    class="img-wrapper" 
    [ngStyle]="{'background-image': !item.featured ? 'url(\'images/img1.png\')' : 'url(\'images/img2.png\')'}">
  </div>
</li>

答案 3 :(得分:2)

您可以按以下方式使用它:

export const LoginStack = StackNavigator({
  Splash: {
    screen: Splash,
  },
  Login: {
    screen: Login,
  },

},
{

  initialRouteName: 'Splash',

});



export const HomeStack = StackNavigator({

  KasianServices:{
    screen:KasianServices,
  },
  SpecialOffers:{
    screen:SpecialOffers,
  },

},
{
  initialRouteName: 'KasianServices',

});




export const RootNavigator = StackNavigator({
  LoginStack: {
    screen: LoginStack,
  },
  HomeStack:{
    screen: HomeStack,
  },
},{
  mode: 'modal',
  headerMode: 'none',
  initialRouteName: 'LoginStack',
}

);

export const Drawer = DrawerNavigator({
  Stack: { screen: RootNavigator },
},{
    contentComponent: RightSideMenu,
    drawerPosition: 'right',
})

答案 4 :(得分:1)

<h2 [ngStyle]="serverStatus == 'Offline'? {'color': 'red'{'color':'green'}">Server with ID: {{serverId}} is {{getServerStatus()}} </h2>

或者您也可以使用类似这样的东西:

<h2 [ngStyle]="{backgroundColor: getColor()}">Server with ID: {{serverId}} is {{getServerStatus()}}</h2>

和* .ts

getColor(){return this.serverStatus === 'Offline' ? 'red' : 'green';}

答案 5 :(得分:1)

我在现有项目中使用了以下代码

<div class="form-group" [ngStyle]="{'border':isSubmitted && form_data.controls.first_name.errors?'1px solid red':'' }">
</div>

答案 6 :(得分:1)

zip(a[0],a[1], a[2])

答案 7 :(得分:0)

要添加和简化GünterZöchbauer的示例,以使用(if ... else)设置背景图片以外的其他内容为例:

<p [ngStyle]="value == 10 && { 'font-weight': 'bold' }">

答案 8 :(得分:0)

[ngStyle] ,带有基于条件的if和else情况。

答案 9 :(得分:-1)

使用:

[ngStyle]="{'background-image': 'url(' +1=1 ? ../../assets/img/emp-user.png : ../../assets/img/emp-default.jpg + ')'}"