Angularjs Angular js:根据json响应更改字体颜色和图像
假设它们是一个外部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>
{"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的响应是中等的?根据原始问题中的jsonjsonVariable={“threat”:[{“level”:“Low”},{“level”:“Middle”},{“level”:“high”}}
,从中可以提取所需的对象variableWithStyle=jsonVariable['thread'][1]['level']
我如何知道json的响应是中等的?根据原始问题中的jsonjsonVariable={“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
。