Имам множество вложени изгледи в рутер Ui. Искам да знам дали е възможно всички те да споделят един контролер за някаква идентична функционалност и след това да имат свои контролери за друга функционалност. Аз бих искал този родителски контролер да направи няколко api повиквания и да запази някакъв обхват променливи, така че не трябва да правя тези обаждания поотделно във всеки контролер. Знам, че мога да постигна нещо подобно с разрешаване, но дали са възможни 2 контролера за един изглед?
ето пример на моя код за това как изглежда кодът ми
.state("app.user", {
url: "/user",
resolve: {
userData: ["UserService", function(UserService) {
return UserService.getuser().then(function(profile) {
UserService.profile = profile.data;
UserService.currentId = profile.data.user.id;
return profile.data;
});
}]
},
views: {
"content@": {
templateUrl: ENVApp + "/views/user/profile.html?",
controller: "UserController"
},
"addresses@app.user": {
templateUrl: ENVApp + "/views/partials/addresses?",
controller: "UserAddressController"
}
}
})
Отговори:
3 за отговор № 1Да, правя това в повечето си приложения. В тялото си div посочвам контролер на име appController с ng-controller = "appController като приложение" и след това мога да го препращам от всеки изглед в моето приложение като приложение.
0 за отговор № 2
просто бихте могли да направите
<div ng-controller="parentController">
<div ng-view></div>
</div>
parentController
е общият контролер за идентична функционалност и ng-view
ще бъде актуализиран за отделни контролери.