2017-04-21 5 views
0

Ich habe drei Module app.root, app.shell, app.shop. Und es so, dassAnsicht nicht aktualisieren mit 2 Modul angularjs

.module('app.root',['app.shell,'app.shop']) 

In app.shop, ich Artikel hinzufügen, in Cookies

vm.add = function(tensp,gia,img){ 
        var item = { 
        tensp : tensp, 
        gia : gia, 
        img : img 
        }; 

    var cart = $cookies.getObject('cart'); 

     if (cart) { 
     var items = JSON.parse(cart); 
      items.push(item); 

     $cookies.putObject('cart', JSON.stringify(items)); 
     } else { 
     $cookies.putObject('cart', JSON.stringify([item])); 
     } 

In app.shell, Ich zeige es in html

 vm.cookies = JSON.parse($cookies.getObject('cart')); 
{{vm.cookies.length}} 

Dieses Problem ist die Ansicht nicht aktualisieren. Es wird nur aktualisiert, wenn ich die Seite aktualisiere. Wo ist mein Fehler? Bitte helfen Sie mir

+1

Hallo wieder, bitte fügen Sie Ihre volle Ansicht und Controller. – lin

+0

Hallo. Wenn ich ein PLNKR erstelle, hat Karim mein Problem gelöst. Aber danke für hallo mich ^^ –

Antwort

1

Sie haben nicht den ganzen Code geschrieben, sondern versuchen, das Problem zu erraten, ich denke, Sie sollten die Cookies-Array für jede Änderung zu sehen, holen Sie den neuen Wert und aktualisieren Sie dann die Ansicht.

$scope.$watch(function() { 
return $cookies.cart; //watch the cart array 
}, function(newValue) { 
    vm.cookies = JSON.parse(newValue); 
}, true); 

In Ihrem Code sind Sie nur die Daten einmal holen, denken Sie daran, dass der Wagen Array eine Kopie des Originals ist, keine Referenz.

vm.cookies = JSON.parse($cookies.getObject('cart')); //this is a copy of the array 
{{vm.cookies.length}} //view 
+0

Nun, ich machte einen Plünderer, um ihn zu beantworten. Aber du warst schneller, hier ist der Plocker sowieso: https://plnkr.co/edit/gkmFeHCMkMCBVgDDrGJs?p=preview – JeanJacques

+0

hoffe es wird sein Problem beheben;) – Karim

+0

Vielen Dank. Ich werde es versuchen . Hier ist mein Plnkr ich erstelle https://plnkr.co/edit/hsb8AT6jaBY07fgC2gFS?p=preview –

Verwandte Themen