SendMessage avec Angular

Bonjour,

 

Suite au passage en version 1.8 j’ai mis à jour mon site angular :

var panelApp = angular.module('panelApp', ['ngConstellation'])
 .controller('PanelController', ['$scope', 'constellationConsumer', function ($scope, constellation) {

 // Initialisation 
 constellation.intializeClient("http://adresse_ip", "Clé", "Test");

 $scope.TestMessage = function () {
 constellation.sendMessage({ Scope: 'Package', Args: ['Autoremote'] }, 'SendNotif', '[ Target : "Nexus", Title : "Test", Message : "Test" ]');
 alert('lol');
 };

 // Connexion à la Constellation
 constellation.connect();
 
 }]);

Mais ma fonction TestMessage ne fait rien. Dans mon html j’ai :

<button ng-click="TestMessage()">Test</button>

Et mon body contient :

<body ng-app="panelApp">

Donc aucune notification sur mon portable (ça fonctionne par la console Constellation) et rien dans les logs de Chrome.

Une idée de mon erreur ?

 

Merci

Hello,

Le problème vient de tes arguments !

Soit tu invoques un MessageCallback qui prend plusieurs paramètres, disons en C# (string target, string title, string message) et dans ce cas, tu dois passer tes 3 params via un tableau : [ “Nexus”, “Test”, “Test” ]

Soit ton MC prend un seul paramètre de type objet défini dans une classe avec trois propriétés par exemple ! Dans ce cas au niveau de ton invocation en JS tu passerais un objet JSON avec les 3 props : { Target : “Nexus”, Title : “Test”, Message : “Test” }

Dans ton exemple, tu mixes tableau [ x, y, z ] et objet { Prop1:x, Prop2:y, Prop3:z }

Bien entendu tu peux avoir un MC qui prend plusieurs arguments mixant des types simples ou complexes !

Par exemple en C#, imagines un MC avec la signature (string test, MonObject test2, int 2), en JS tu passerais les params de la façon suivante :

[ “1er argument”, { Prop1:x, Prop2:y, Prop3:z }, 42 ] !

A+

Ps : de plus, ton argument ne doit pas être passé entre quote ’ ’ car sinon cela veut dire que tu passes un string !