Ich muss eine Variable an einen anderen Controller übergeben. Ich habe den folgenden Code, der sich auf ListCtrl bezieht:
<a href="#items" data-router="article" ng-click="changeListName('metro')">
Der Link führt zu einem anderen Controller, ItemCtrl.
Ich möchte eine Variable an die ItemCtrl übergeben. Ich dachte daran, einen Dienst namens SharedProperties zu verwenden:
service('sharedProperties', function () {
var list_name = '';
return {
getListName: function() {
return list_name;
},
setListName: function(name) {
list_name = name;
}
};
});
Wenn auf den Link geklickt wird, rufe ich ein Winkelklickereignis auf, um die folgende Funktion auszulösen:
$scope.changeListName = function(name) {
sharedProperties.setListName(name);
};
Der Klick auf ng scheint jedoch den Wert meiner freigegebenen Eigenschaft nicht zu ändern ...
AKTUALISIEREN
Ich habe eine Warnung in die durch ng-click ausgelöste Funktion eingefügt und die Warnung wird ausgelöst, wie es sein sollte.
Wenn ich meine Funktion jedoch so schreibe:
$scope.changeListName = function(name) {
sharedProperties.setListName(name);
};
Es funktioniert nicht ... es sieht aus wie 'sharedProperties.setListName (name);' wird nicht ausgeführt ...
Wenn ich es mit einem Dummy-Namen (z. B. Metro) außerhalb der Funktion platziere, funktioniert es.
UPDATE 3
Ich habe mehrere Dinge ausprobiert und bin ziemlich sicher, dass das Problem bei dieser Funktion liegt:
$scope.changeListName = function(list_name) {
sharedProperties.setListName(list_name);
};
Haben Sie eine Idee, warum dies geschieht?
ng-ref
undhref
,ng-click
ausgelöst wird und feuert meine Funktion. Ich habe meine Antwort aktualisiert, um mein Problem besser widerzuspiegeln.