对于 ng-list,您的模型通常有一个简单的数组:
[1,2,3,4,5]
相反,我有一个像这样的对象数组:
[{ id: 1, value: 2 }, { id: 2, value: 3 } ... ]
有什么办法让我能够value
在类似于此的文本输入中输出每个?:
2, 3
似乎 ng-list 是我想要的,但显然我的模型是错误的。我只需要翻译我的模型还是有办法用我所拥有的来做到这一点?
谢谢!
对于 ng-list,您的模型通常有一个简单的数组:
[1,2,3,4,5]
相反,我有一个像这样的对象数组:
[{ id: 1, value: 2 }, { id: 2, value: 3 } ... ]
有什么办法让我能够value
在类似于此的文本输入中输出每个?:
2, 3
似乎 ng-list 是我想要的,但显然我的模型是错误的。我只需要翻译我的模型还是有办法用我所拥有的来做到这一点?
谢谢!
扩展@Benjamin Gruenbaum 评论,我认为这是最简单的解决方案:
<input type="text" ng-model="test">
在你的控制器中
$scope.test = [{ id: 1, value: 2 }, { id: 2, value: 3 } ].map(function(x){ return x.value; });
我不熟悉 ng-list,但根据 docs Text input that converts between a delimited string and an array of strings
,所以它适用于字符串,我认为你能做的最好的事情就是观察你的数组是否有变化,然后将你想要的属性添加到一个新数组中
$scope.myObjects = [{id:1, name:'john'},{id:2, name: 'charles'}];
$scope.myStringArray = [];
$scope.$watch('myObjects', function(){
var newArray=[];
for (var i = 0; i < $scope.myObejcts.lenght; i++) {
newArray.push($scope.myObjects[i].name)//in case you want to list names
}
$scope.myStringArray = newArray;
} , true);