Angularjs,从json对象输出一个字符串或一个字符串数组
Angularjs, output a string or an array of strings from json object
假设我有一个json对象:
{record: [{value:"some string"}, {value:["A string", "B string"]}]}
我想从中得到的输出非常简单:如果有单个字符串,则为字符串,如果有字符串数组,则为串联字符串
value: some string
value: A string, B string
但是当我写这个代码时:
<span ng-repeat="r in record">value: {{r.value}}<br/></span>
这两个值都被认为是字符串,我得到的输出是:
value: some string
value: ["A string", "B string"]
当我写这个代码时:
<span ng-repeat="r in record">value: {{r.value.join(", ")}}<br/></span>
两个值都被认为是数组,由于第一个值不是,所以我得到了这个(第一个值缺失):
value:
value: A string, B string
处理这个问题的最佳方法是什么?
您可以打开表达式中的类型:
<span ng-repeat="r in record">
value: {{ Array.isArray(r.value) ? r.value.join(", ") : r.value }}<br/>
</span>
或者你可以添加一个过滤器来封装逻辑:
myModule.filter('joinIfArray', function () {
return function (input) {
return Array.isArray(input) ? input.join(", ") : input;
};
});
并像一样使用它
<span ng-repeat="r in record">value: {{ r.value | joinIfArray }}<br/></span>
稍短:
<span ng-repeat="r in record">value: {{r.value.join(", ") || r.value}}<br/></span>
另一种方式,它应该是递归的。
您当前的文件:
<span ng-repeat="r in record track by $index" ng-include="'mytemplate.html'"></span>
template.html:
<span ng-if="! isArray(r.value)">value: {{r.value}}<br/></span>
<span ng-if="isArray(r.value)"><span ng-include="'mytemplate.html'"></span><span ng-if="!$last">, </span></span>
在控制器中:
$scope.is_array = function(data) {
return Array.isArray(data);
}
相关文章:
- NodeJS在一个较大的字符串中获取一个字符串的索引
- Javascript:用while循环在给定的count参数中重复一个字符串
- 如何使用另一个字符串作为模板从字符串中提取数据
- 如何检查一个字符串的所有字符是否都存在于另一个字符串中
- 从表单中动态生成一个字符串,传递给通过AJAX加载的PHP文件
- 我可以使用JS一次使用JSON数组中的一个字符串吗
- 将字符串转换为数组使用javascript更新一个值并返回一个字符串
- 如何在JavaScript中每隔第n个字符分割一个字符串
- 我需要使用什么语法来向一个对象的成员添加一个临时数组,该成员等同于一个字符串的通用列表
- 使用Jquery从所有元素创建一个字符串
- 在Javascript中截断一个字符串,混淆了最后两个测试字符串
- Javascript使用本地存储,回调对象并用Json更改为一个字符串以用于填充函数
- 将一个字符串数组解析为一个新的数组javascript
- 我可以在两个javascript文件之间传递一个字符串吗?
- 如何拆分一个字符串,然后将它们与另一个字符串匹配
- get没有方法“writefile”,即使输入是一个字符串
- 将 url 中的一个字符串替换为另一个字符串
- 如何在 javascript 中使用正则表达式在其他两个字符串之间找到一个字符串
- “JSON.parse(str)”返回“意外令牌c”,但str是一个字符串
- 递归查找嵌套数组中的最后一个字符串