使用范围变量在ng-repeat中索引范围数组?

时间:2015-11-29 16:10:36

标签: angularjs

我有一个类似树的结构,从我为我的服务器编写的一些PHP代码中接收为JSON。

代码远非复杂到发布,所以让我们使用一个例子:

公司有

  • 多个部门,每个部门都有0..n
    • 工作,每个工作都有0..n

所以,我可以找到像

这样的东西
$scope.departments[1].jobs[1].people[1]
$scope.departments[1].jobs[1].people[2]

我有当前用户选择的部门,工作和个人的$scope变量。

我的问题是我想在HTML视图中使用ng-repeat个作业。

声明

<div ng-repeat="job in departments[{{departmentId}}].jobs>

提供Error: [$parse:syntax]

<div ng-repeat="job in departments[$scope.departmentId].jobs>

(我绝望地试过)。

正确的语法是什么?

我想知道我是否需要尝试

<div ng-repeat="job in GetJobsForCurrentDepartment()>  

因为$scope.departmentId将在我的控制器的范围内,但不在部门的HTML视图中。

2 个答案:

答案 0 :(得分:3)

由于视图具有与之关联的控制器,因此控制器与其关联$scope。不需要使用$scope html元素来引用控制器中定义的变量。在视图中与元素一起使用的任何变量都在与该元素关联的范围中查找。仅在脚本中需要$scope

因此你可以写

<div ng-repeat="job in departments[departmentId].jobs>

这将获取departmentId&amp;的值。其中的工作将由ng-repeat指令处理。

答案 1 :(得分:2)

您不必在视图中提及附加了$scope

试试这个

<div ng-repeat="job in departments[departmentId].jobs>

JS

$scope.departmentId=1;