$scope.categories = [ {
"advertiser_id": "2",
"tier_id": 1,
"tier_name": "1",
"base_cpm_price": "",
"retarget_cpm": "",
"gender": "",
"location": "",
"ageblock1": "",
"ageblock2": "",
"ageblock3": "",
"ageblock4": "",
"ageblock5": "",
"default": 1,
"status": 1
},
{
"advertiser_id": "2",
"tier_id": 2,
"tier_name": "2",
"base_cpm_price": "",
"retarget_cpm": "",
"gender": "",
"location": "",
"ageblock1": "",
"ageblock2": "",
"ageblock3": "",
"ageblock4": "",
"ageblock5": "",
"default": 1,
"status": 1
},
{
"advertiser_id": "2",
"tier_id": 3,
"tier_name": "3",
"base_cpm_price": 1,
"retarget_cpm": 1,
"gender": 1,
"location": 1,
"ageblock1": 10,
"ageblock2": 0,
"ageblock3": 0,
"ageblock4": 0,
"ageblock5": 0,
"default": 0,
"status": 1
}
];
我有一个 3 JSON 对象,我想使用 anjularJS 在 HTML View 中显示它。 但是当我尝试在 HTML 中显示时,0 值被视为空。
<tr ng-repeat="defaultsettings in listDefaultsettings >
<td>{{defaultsettings.tier_name }}</td>
<td>{{defaultsettings.base_cpm_price || '---'}}</td>
<td>{{defaultsettings.retarget_cpm || '---'}}</td>
<td>{{defaultsettings.gender || '---'}}</td>
<td>{{defaultsettings.location || '---'}}</td>
<td>{{defaultsettings.ageblock1 || '---'}}</td>
<td>{{defaultsettings.ageblock2 || '---'}}</td>
<td>{{defaultsettings.ageblock3 || '---'}}</td>
<td>{{defaultsettings.ageblock4 || '---'}}</td>
<td>{{defaultsettings.ageblock5 || '---'}}</td>
<td class="td-active default-pricing">
</tr>
用 --- 代替 0,但我想显示值,即 0。
最佳答案
因为在 javascript 中 0
是假的。
console.log(0||1);
console.log(""||"abc");
console.log(undefined||"defined");
console.log(null||"notnull");
要解决这个问题,您可能会遇到这样的问题:使用 angular.isNumber()/angular.isString()
方法进行三元 if/else 操作:
// define a method which returns a value
$scope.isEmptyValue = function(val, dashes){
return (angular.isNumber(val) || !angular.isString(val)) ? val : dashes;
};
现在在 View 中您可以执行以下操作:
<td>{{ isEmptyValue(defaultsettings.prop, "---") }}</td>
关于javascript - 如何使用 angularJs 在 html 值中显示 JSON 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42577829/