Я хочу позвонить Homecontroller в LoginController. ниже приведен код обоих контроллеров:
//Login controller
app.controller('LoginController', function ($scope, $cookieStore) {
$cookieStore.put('email','[email protected]');
// need to call Homecontroller here
});
// Home controller
app.controller('HomeController', function ($scope, $cookieStore, $location) {
if ($cookieStore.get('email') != null) {
$scope.wecomeMessage = $cookieStore.get('email');
}
else
{
$scope.wecomeMessage = "";
}
});
Я думаю, вы неправильно поняли ответственность диспетчеров в угловой.
Как использовать контроллеры из угловых документов:
Используйте контроллеры для:
Задайте начальное состояние объекта $ scope.
Добавить поведение объекта $ scope.
Не используйте контроллеры для:
- Манипулирование DOM - Контроллеры должны содержать только бизнес-логику.
- Помещение любой логики представления в контроллеры значительно влияет на ее тестируемость.
- Угловой имеет привязку данных для большинства случаев и директивы для инкапсуляции ручных манипуляций с DOM.
- Ввод формата - вместо этого используйте элементы управления угловой формой.
- Выход фильтра. Вместо этого используйте угловые фильтры.
- Копировать код или состояние через контроллеры. Вместо этого используйте угловые сервисы.
- Управляйте жизненным циклом других компонентов (например, для создания экземпляров службы).
Поэтому, если вы хотите создать некоторый блок многоразового кода, вам просто нужно создать угловое обслуживание, которое будет включать функцию с необходимой логикой. Затем вы можете ввести его на оба контроллера, и они будут иметь необходимую функциональность.
Пример:
app.controller('LoginController', function ($scope, $cookieStore, helperService) {
$cookieStore.put('email', '[email protected]');
$scope.wecomeMessage = helperService.getMessage();
});
// Home controller
app.controller('HomeController', function ($scope, $cookieStore, $location, helperService) {
$scope.wecomeMessage = helperService.getMessage();
});
app.service('helperService', function ($cookieStore) {
this.getMessage = function () {
return $cookieStore.get('email') != null ? $cookieStore.get('email') : "";
};
});
$scope.wecomeMessage
который$scope.wecomeMessage
на$cookieStore.get('email')
и это не зависит от какой-либо службы. проблема заключается в обновлении приветственного сообщения$scope.wecomeMessage
$scope.welcomeMessage
в обоих контроллерах, зависит от того, что находится внутри `$ cookieStore.get ('email'), да?