我在将对象内部的数组转换为ng-options时遇到了问题。
我在另一个数组中有以下对象数组:
$scope.array = [{name: "jan", ar=["car", "bus", "bike"]}, {name: "tom", ar=["milk", "water", "bike", "walking"]}, {name: "kim", ar=["star", "car"]}]
我想用jan,tom和kim选项进行选择。但这不是一个问题:
<select ng-options="o.name for o in array" ng-model="choosen.nOption">
然而,当他们选择一个选项时,新的选择应该从该名称的数组ar作为选项开始:
<select ng-if="choosen.nOption!=undefined" ng-options="o.ar for o in array.ar | filter: {name: choosen.nOption}">
任何人都可以帮助我获取内部数组的值吗?
你可以在https://jsfiddle.net/brokenhip/phxyap8a/
找到一个小提琴手解决方案: https://jsfiddle.net/brokenhip/phxyap8a/2/
<select ng-options="o.name for o in arrayA" ng-model="choosen.nOption"></select>
<select ng-if="choosen.nOption!=undefined" ng-options="o for o in choosen.nOption.ar" ng-model="choosen.nOption2"> </select>
答案 0 :(得分:0)
所以我发现一个简单的方法是使用$ watch来查看第一次选择更改的时间。
在你的控制器中添加:
$scope.$watch('choosen.nOption',function(newVal){
$scope.choosenOption = newVal['ar'];
console.log($scope.choosenOption); // check in your console
});
在HTML中,您不需要过滤器:
<select ng-if="choosen.nOption!=undefined" ng-options="opt for opt in choosenOption" ng-model="choosen.nOption2"> </select>