javascript - 从另一个范围遍历范围内的对象?

标签 javascript angularjs

我不知道该如何表达,所以请耐心等待..

在我的主 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/

相关文章:

javascript - 条件中的 window.addEventListener

javascript - AngularJS - ng-repeat - 有条件地附加 html

javascript - 在重新创建数组之前清除数组,以在数据刷新或重新加载时停止 Angular HTML SELECT 中的重复下拉选项

javascript - Angular-UI 网格 : adding custom field in columnDefs and access it from header template

jquery - 选择器中的 Angular $scope

javascript - 当状态更新不影响 UI 时防止 "not wrapped in act(...)"Jest 警告

javascript - jQuery,重复选择器

javascript - 在 JavaScript 中测量文本大小

javascript - Npm postinstall 仅用于开发

javascript - 在 AngularJS Material Design 中,如何隐藏 `md-toolbar` 中的溢出文本?