在没有“控制器”的情况下,父母可以访问子级范围'指令集

时间:2014-05-06 15:30:36

标签: javascript angularjs

我不明白这是怎么回事。请为我清楚这一点。我正在阅读范围继承,据我所知,我们无法从父母那里访问孩子的范围,对吧?

所以我遇到这种情况,我创建了一个控制器,但忘了通过ng-controller侦探在模板中设置它。但它仍然有效。我从来没有注意到它。这是预期的行为还是我错过了什么?我甚至不知道这里列出的代码部分。

这是一个普通的控制器

angular.module('Basal.tables')

.controller('ListTablesCtrl', function($scope, getTablesS) {
  $scope.tables = {};

  getTablesS.fetch(function (d){
    $scope.tables = d;
    });

});

...在位置变更时执行

when('/tables', {
  templateUrl: '/views/tables/list-tables.html',
  controller: 'ListTablesCtrl'
}).

但是模板中没有提到控制器。

<div class='frame' id='list-tables'>

<section class='title'> Tables </section>
<table>
  <tr ng-repeat='table in tables'>
    <td><input type='checkbox'></td>
    <td>{{ table.title }}</td>
    <td>{{ table.desc }}</td>
  </tr>
</table>

</div>

一切都有效。怎么可以在这里看到tables对象? 在html主体上设置了顶部主控制器,这意味着它在模板中的此主控制器下运行。但那么它如何访问儿童的范围呢? 请解释我是否遗漏了一些愚蠢的东西。

感谢。

1 个答案:

答案 0 :(得分:1)

Angular向上看控制器/方法。 意思是如果它不在当前范围内,它将查看父范围。

但在您的情况下,您已将控制器附加到路径文件中。

when('/tables', { templateUrl: '/views/tables/list-tables.html', controller: 'ListTablesCtrl' })