我不明白这是怎么回事。请为我清楚这一点。我正在阅读范围继承,据我所知,我们无法从父母那里访问孩子的范围,对吧?
所以我遇到这种情况,我创建了一个控制器,但忘了通过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主体上设置了顶部主控制器,这意味着它在模板中的此主控制器下运行。但那么它如何访问儿童的范围呢?
请解释我是否遗漏了一些愚蠢的东西。
感谢。
答案 0 :(得分:1)
Angular向上看控制器/方法。 意思是如果它不在当前范围内,它将查看父范围。
但在您的情况下,您已将控制器附加到路径文件中。
when('/tables', {
templateUrl: '/views/tables/list-tables.html',
controller: 'ListTablesCtrl'
})