J'ai donc un composant parent qui contient une tonne de composants plus petits. L'idée générale est que j'ai besoin d'un composant pour prendre les données dans une entrée et l'afficher sur un autre composant. Voilà ce que j'ai qui ne fonctionne pas tout à fait, plus de détails sur le problème après:Comment utiliser les services angulaires 1.x pour mettre à jour un composant d'un autre?
const app = angular.module('app', []);
app.service('dataService', function() {
let data = {
key1: "",
key2: "",
key3: {
key4: 0,
key5: 0
}
}
this.getKey1 = function() {
return data.key1;
}
this.updateKey1 = function(str) {
data.key1 = str;
}
}
app.component('display', {
controller: displayController,
template: '<p>{{ keyOne }}</p>'
});
app.component('input', {
controller: inputController,
template: '<input ng-model="$ctrl.key1" ng-change="sendKey1()">'
}
function displayController($scope, dataService) {
const vm = this;
const self = $scope;
vm.$onInit = onInit;
function onInit() {
self.keyOne = dataService.getKey1();
}
}
function inputController($scope, dataService) {
const vm = this;
const self = $scope;
vm.$onInit = onInit;
function onInit() {
self.sendKey1 = function() {
dataService.updateKey1(vm.key1)
}
}
donc la mise à jour fonctionne, mais il ne passe pas à l'élément d'affichage. Si je consigne l'objet de données après l'avoir mis à jour, il est correct mais n'apparaît pas sur la vue.
merci qui fait sens et fonctionne parfaitement –