我不知道该如何表达,所以请耐心等待..
在我的主 Controller 上,我有一个大对象,其中包含一堆嵌套的地理信息,可以像这样用点表示法遍历......
$scope.cData = //large object pulled in from service
// In the view, I can call the entire object or traverse it to return JSON
{{cData}} // Entire object
{{cData.United_States}} // US Data only
{{cData.United_States.Southwest}} // Southwest region only
{{cData.United_States.Southwest.Texas}} // Texas state only
在子 Controller 中,我有一个由 UI 上的一堆输入构建的范围。因此,根据用户所做的选择,所有变量都会被监视并连接到 Controller 范围。根据用户的选择,监视功能将更改“query”变量:
$scope.companyData = "United_States.Southwest"; // User chooses southwest
所以问题是,如何使 companyData 作为参数传递给 View 中的 cData 对象?错误的看待方式是这样的:
{{$parent.cData + {{companyData}} }}
换句话说,我想使用 companyData 作用域变量来引用遍历 cData 作用域变量的位置。
最佳答案
我认为使用 alexsanford1 提出的方法,您可以使用 AngularJS 功能来改进这一点:
注入(inject)$parse在你的 Controller 中,然后这个函数看起来像这样:
$scope.getNestedProperty = function(obj, propertyExpr) {
return $parse(propertyExpr)(obj);
}
关于javascript - 从另一个范围遍历范围内的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22845504/