2017-05-17 3 views
-5

Ich habe zwei pages.First ist ItemMenuPage Sekunden CartPage .So sind, wenn ich auf einem beliebigen Element Namen klicken, um es zu CartPage navigieren soll, aber ich brauche, dass Elementname angezeigt werden CartPage.Wie Namensfeld zu übergeben, wenn auf einem anderen Seite geklickt

MenuController

.controller('FoodCtrl', function($scope,$state,mySharedService) { 
$scope.addProductItem=function(product){ 
    var itemName=product.itemName; 
    mySharedService.setData(product); 
    $state.go('app.produce'); 
    } 
}); 

CartController

.controller('ProduceSaveController', ['$scope','mySharedService', 
function(scope,mySharedService){ 
scope.$on('handleBroadcast',function(){ 
scope.itemName=mySharedService.itemName; 
}) 

service.js

.factory('mySharedService',function($rootScope){ 
var sharedService={}; 
sharedService.itemName=''; 

sharedService.setData=function(product){ 
this.itemName=product; 
this.broadcastItem(); 
}; 
sharedService.broadcastItem=function(){ 
$rootScope.$broadcast('handleBroadcast'); 
}; 
return sharedService; 
}) 

Antwort

3

Typischerweise y Sie werden Ihren Einkaufswagen irgendwo aufbewahren. Datenbank, Sitzungsspeicher usw. Wo Sie sie tatsächlich speichern, ist nicht so wichtig, solange die Schnittstelle zu diesen Daten korrekt ist.

angular.module('app') 
.factory('cart', function() 
{ 
    return { 
     addItem: function(item){ 
      // code here to store item 
     }, 
     getItems: function(){ 
      // code to get items - if ajax, probably returns a promise object 
     } 
    }; 
}); 

Auf Ihrer itemPage würden Sie addItem aufrufen. Auf Ihrer Warenkorbseite würden Sie getItems aufrufen.

angular.module('app') 
.controller('cartController', function($scope, cart){ 
    cart.getItems().then(function(items){ 
     $scope.items = items; 
    }; 
}); 

Ohne weitere Informationen, das ist so viel wie ich helfen kann.

+0

es ist nicht für mich arbeiten geschaffen Ich mag dieses $ scope.addProductItem = function (Produkt) {var itemName = product.itemName; mySharedService.setData (Produkt); $ state.go ('app.produce'); } – umapathi

+0

Es ist kein vollständiger Code. Sie müssen den Code schreiben, um die Artikel von Ihrem ausgewählten Speicherort zu speichern und abzurufen. – AndrewR

+0

Ich schlage vor, eine neue Frage zu beginnen, da diese geschlossen ist und alle relevanten Codes enthalten. – AndrewR

0

Gemeinsame Wege zwischen den Modulen der Anwendung unter Verwendung von Kern AngularJS Funktionalität gehören zu kommunizieren:

  • Mit Diensten
  • Mit Veranstaltungen
  • Durch die Zuordnung von Modellen auf $ rootScope
  • Direkt zwischen Steuerungen, mit $ Eltern, $$ childHead, $$ nextSibling usw.
  • Direkt zwischen den Controllern, mit ControllerAs oder anderen Formen von Erbe
Verwandte Themen