AngularJS:用于纯文本的ng-repeat

时间:2014-07-13 00:49:27

标签: javascript html angularjs input angularjs-ng-repeat

我有什么:

app.controller('items', function($scope){
   $scope.items = [
      {'id':1, 'name':'randomOne'},
      {'id':2, 'name':'whatEverName'} 
   ];
});

我想要的是什么:

<input value="1,2"/>

我了解ng-repeat,但它只能用于html标记。有没有办法用AngularJS实现这个目标?

谢谢!

3 个答案:

答案 0 :(得分:1)

怎么样:

$scope.value = _.pluck(items, 'id').join(',');

<input value="value">

答案 1 :(得分:1)

使用过滤器:

.filter('getIds', function () {
  return function (items) {
    return items && items.map(function (item) {
      return item.id;
    }).join(',');
  }
})

在你的HTML中:

<input value="{{ items | getIds }}" />

示例Plunker: http://plnkr.co/edit/ifHKzWqxtErQQVToMNsH?p=preview

答案 2 :(得分:0)

您可以循环浏览它们并使用value="{{ids}}",如:

$scope.ids = [];
angular.forEach($scope.items, function(values,keys){
     $scope.ids.push(values.id);
});
$scope.ids = $scope.ids.join();

fiddle