Angularjs Angular js:根据json响应更改字体颜色和图像

Angularjs Angular js:根据json响应更改字体颜色和图像,angularjs,Angularjs,假设它们是一个外部json文件: {"threat": [{"level": "Low"},{"level": "Medium"},{"level": "high"}]} 下面是HTML代码: <body ng-app="myApp"> <h1>Page Title</h1> <img src="images/status.jpg"> <p>change color</p> </body>

假设它们是一个外部json文件:

{"threat": [{"level": "Low"},{"level": "Medium"},{"level": "high"}]}
下面是HTML代码:

<body ng-app="myApp">
   <h1>Page Title</h1>
   <img src="images/status.jpg">
   <p>change color</p>
</body>
但我在控制台中没有定义,而不是在响应中


收到响应后,我必须检查如何更改图像和文本的颜色?取决于响应的高、低和中。

您可以通过多种方式进行更改

使用ng样式:

<p ng-style="variableWithStyle">change color</p>
//variableWithStyle={color:'orange'}
//or
<p ng-style="{color:variableWithStyle}">change color</p>
//variableWithStyle='orange'
更改颜色

//variableWithStyle={color:'orange'} //或 更改颜色

//可变样式='orange' 与ng类

<p ng-class="variableWithClass">change color</p>
//variableWithClass='medium', medium is defined in .css
更改颜色

//variableWithClass='medium',medium在.css中定义
您可以通过多种方式完成此操作

使用ng样式:

<p ng-style="variableWithStyle">change color</p>
//variableWithStyle={color:'orange'}
//or
<p ng-style="{color:variableWithStyle}">change color</p>
//variableWithStyle='orange'
更改颜色

//variableWithStyle={color:'orange'} //或 更改颜色

//可变样式='orange' 与ng类

<p ng-class="variableWithClass">change color</p>
//variableWithClass='medium', medium is defined in .css
更改颜色

//variableWithClass='medium',medium在.css中定义
您可以将其与init=”“方法一起使用

<body ng-app="myApp"  ng-init="High = 'red'; Low = 'green'; Medium = 'orange'">
   <h1>Page Title</h1>
   <img src="images/status.jpg">
   <p  style="color:{{threat.level}};">change color</p>
</body>

页面标题
更改颜色


注意:检查变量名将区分大小写。

您可以将其与init=”“方法一起使用

<body ng-app="myApp"  ng-init="High = 'red'; Low = 'green'; Medium = 'orange'">
   <h1>Page Title</h1>
   <img src="images/status.jpg">
   <p  style="color:{{threat.level}};">change color</p>
</body>

页面标题
更改颜色


注意:检查变量名将区分大小写。

您必须为字体颜色创建3个css类

.red {
  color: 'red';
}
.green {
  color: 'green';
}
.orange {
  color: 'orange';
}
现在你可以用两种不同的方式

备选方案1)

在js中,请执行以下操作:

$scope.selectedItem = ({Low:{
    url: '1images/status.jpg',
    class: 'green'
  },
  Medium:{
    url: '2images/status.jpg',
    class: 'orange'
  },
  High:{
    url: '3images/status.jpg',
    class: 'red'
  }
})[selectedResponse.level];
在HTML中

<body ng-app="myApp">
   <h1>Page Title</h1>
   <img src="{{selectedItem.url}}">
   <p class="{{selectedItem.class}}">change color</p>
</body>

页面标题
更改颜色

备选方案2)

在html中,如果出现以下情况,请使用ng类和ng:

<body ng-app="myApp">
  <h1>Page Title</h1>
  <img src="url1" ng-if="response.level === 'Low'">
  <img src="url2" ng-if="response.level === 'Medium'">
  <img src="url3" ng-if="response.level === 'High'">
  <p ng-class="{'red': response.level === 'High', 'orange': response.level === 'Medium', 'green': response.level === 'Low'}">change color</p>
</body>

页面标题
更改颜色


您必须为字体颜色创建3个css类

.red {
  color: 'red';
}
.green {
  color: 'green';
}
.orange {
  color: 'orange';
}
现在你可以用两种不同的方式

备选方案1)

在js中,请执行以下操作:

$scope.selectedItem = ({Low:{
    url: '1images/status.jpg',
    class: 'green'
  },
  Medium:{
    url: '2images/status.jpg',
    class: 'orange'
  },
  High:{
    url: '3images/status.jpg',
    class: 'red'
  }
})[selectedResponse.level];
在HTML中

<body ng-app="myApp">
   <h1>Page Title</h1>
   <img src="{{selectedItem.url}}">
   <p class="{{selectedItem.class}}">change color</p>
</body>

页面标题
更改颜色

备选方案2)

在html中,如果出现以下情况,请使用ng类和ng:

<body ng-app="myApp">
  <h1>Page Title</h1>
  <img src="url1" ng-if="response.level === 'Low'">
  <img src="url2" ng-if="response.level === 'Medium'">
  <img src="url3" ng-if="response.level === 'High'">
  <p ng-class="{'red': response.level === 'High', 'orange': response.level === 'Medium', 'green': response.level === 'Low'}">change color</p>
</body>

页面标题
更改颜色


问题可以改进-添加一些JSON作为代码而不是使用列表问题可以改进-添加一些JSON作为代码而不是使用列表如何知道JSON的响应是中等的?根据原始问题中的json
jsonVariable={“threat”:[{“level”:“Low”},{“level”:“Middle”},{“level”:“high”}}
,从中可以提取所需的对象
variableWithStyle=jsonVariable['thread'][1]['level']
我如何知道json的响应是中等的?根据原始问题中的json
jsonVariable={“threat”:[{“level”:“Low”}、{“level”:“Middle”}、{“level”:“high”}
,从中可以提取所需的对象
variableWithStyle=jsonVariable['thread'][1]['level']
什么是[selectedResponse.level]do?selectedResponse应该是从对象数组中选择的对象(
{“威胁”:[{“级别”:“低”},{“级别”:“中”},{“级别”:“高”}]}
)。所以
[selectedResponse.level]=['Low']
(如果选择了Low)。您可以在这条线之前看到一个对象。因此,这将选择'Low'的值并分配给
$scope.selectedItem
。[selectedResponse.level]做什么?selectedResponse应该是从对象数组中选择的对象(
{“threat”:[{“level”:“Low”},{“level”:“Middle”},{“level”:“high”}
)。所以
[selectedResponse.level]=['Low']
(如果选择了Low)。您可以在这条线之前看到一个对象。因此,这将选择'Low'的值并分配给
$scope.selectedItem