У меня есть следующий код:Угловые вложенные ресурсы данных
//routes
.state('app.parent', {
url: '/parent',
templateUrl: 'parent.html',
controller: 'ParentCtrl'
})
.state('app.parent.child', {
url: '/child',
controller: 'ChildCtrl',
templateUrl: 'child.html',
})
//controllers
.controller('ParentCtrl', ['$scope', 'SomeResource', function ($scope, SomeResource) {
$scope.resources = [];
SomeResource.query({}, function(data) {
$scope.resources = data;
});
}])
.controller('ChildCtrl', ['$scope', 'OtherResource', function ($scope, OtherResource) {
$scope.other = {};
...
}])
<!-- VIEWSs -->
<!-- parent.html -->
...
<div ui-view>
<table class="table table-hover table-striped">
<tbody>
<tr ng-repeat="resource in resources">
...
</tr>
</tbody>
</table>
</div>
<!-- child.html -->
<div class="form">
\t ...
</div>
И некоторые другие вложенные государства.
Проблема заключается в том, что я получаю доступ к любому «дочернему» состоянию «parent», родительский контроллер, по-видимому, всегда выполняется, поэтому вызов SomeResource.query вызывается для каждого дочернего состояния.
Мне нужен запрос только для родителей, а не для любого ребенка состояния, и это нужно вкладываться.
Что я делаю неправильно?
Использование вложенных состояний по определению вызывает все вложенные контроллеры. –
делает что-то вроде [этого] (http://stackoverflow.com/questions/22985259/routing-dynamic-paths-recursively-in-angularjs)? –
@ Thom-x no, то есть назад – charlietfl