例如,我有这个字符串
recipe.Tags = "Filipino Cuisine,Easy";
我希望将其转换为下面的数组。
$scope.tags = [{ Name: "Filipino Cuisine" },
{ Name: "Easy"},
];
我可以使用下面的代码,但它只适用于带有2个标签的字符串。
$scope.tags = [ { Name: recipe.Tags.split(',')[0] },
{ Name: recipe.Tags.split(',')[1] },
];
答案 0 :(得分:2)
我要做的是将标记保存在数组中,然后迭代它以获得scope.tags。像这样:
var arrTags = recipe.Tags.split(',');
$scope.tags = [];
for(var i in arrTags) {
var obj = {Name : arrTags[i]};
$scope.tags.push(obj);
}
答案 1 :(得分:2)
您可以直接使用.split和.map来获取数组并转换为对象数组
var recipe = {};
recipe.Tags = "Filipino Cuisine,Easy";
arr = recipe.Tags.split(',').map(function(item) {
return {name: item};
});
console.log(arr);
样本
var app = angular.module('testApp',[]);
app.controller('testCtrl',function($scope){
var recipe ={};
recipe.Tags = "Filipino Cuisine,Easy";
$scope.tags = recipe.Tags.split(',').map(function(item) {
return {name: item};
});
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="testApp" ng-controller="testCtrl">
<li ng-repeat="tag in tags">
<h1> {{tag.name}}</h1>
</li>
</body>
答案 2 :(得分:0)
您可以使用Lodash库和链_.split和_.map来获取对象数组。
var str = 'Filipino Cuisine,Easy',
myObj = _.map(_.split(str,','),(value)=>{
return {Name:value}
});