que je veux transmettre une donnée (contactName
) de l'état au contrôleur par les résolutions:angulaire 1/Ui-routeur - transmettre des données de résolution au contrôleur
.state({
name: 'contact.detail.overlay',
abstract: true,
component: 'overlayContent',
resolve: {
contactName: (originalContact, $rootScope, ContactService) => {
$rootScope.contactName = ContactService.getContactName(originalContact)
return $rootScope.contactName
}
}
})
sur mon état tout est correct, contactName
est également correct, mais il n'est pas accessible dans mon contrôleur overlayContent
, avez-vous une solution pour avoir accès $rootScope.contactName
dans le contrôleur?
EDIT: Le contrôleur:
class overlayContentComponent {
constructor($state, $interpolate, $scope) {
'ngInject'
this.$scope = $scope
this.$state = $state
this.$interpolate = $interpolate
}
/**
*
* On initialization hook, let's check if an overlay title
* has been defined for the current state.
*/
$onInit() {
const stateData = this.$state.current.data || { title: '' }
this.overlayTitle = angular.isDefined(stateData.title) ? this.$interpolate(stateData.title)() : ''
}
}
export const overlayContentComponent = {
template: require('./overlay-content.html'),
controller: overlayContentComponent
}
Je peux accéder à contactName
dans mon contrôleur par this.$scope.$root.contactName
mais je voudrais éviter $scope.$root
par une autre alternative
Pouvez-vous poster votre contrôleur aussi s'il vous plaît? Quelle erreur, le cas échéant, montre? Utilisez-vous/* ngInject */dans votre code de résolution, ou votre application angularJS en général? – rrd
@rrd Le message a été modifié avec quelques explications supplémentaires –