2017-12-08 2 views
0

Ich habe einen Winkel 1.x-Controller mit dem folgende Objekt:Import Winkel JSON-Objekt

notificationTypes: [ { NotificationType: '*', NotificationTitle: 'All notifications' }, 
        { NotificationType: '0', NotificationLabel: 'System Alert', NotificationTitle: 'System alerts' }, 
        { NotificationType: '1', NotificationLabel: 'Pending Task', NotificationTitle: 'Pending tasks' }, 
        { NotificationType: '2', NotificationLabel: 'Update', NotificationTitle: 'Updates' }, 
        { NotificationType: '3', NotificationLabel: 'Missed Message', NotificationTitle: 'Missed messages' } 
        ], 

Es wird verwendet, ein paar Listen auf einer einzigen Seite zu füllen. Ich bin jedoch jetzt in einer Situation, wo ich es auf anderen Seiten wiederverwenden muss. Ich könnte es einfach auf die entsprechenden Seiten kopieren, aber ich würde es lieber umgestalten, damit beide Controller zur besseren Wartbarkeit von derselben Liste aus arbeiten. Ich habe versucht, es im MainApp-Modul als Konstante, Fabrik und/oder Direktive ohne Erfolg zu deklarieren. Was vermisse ich?

+1

einen Winkel Service oder Fabrik Verwenden von Daten über verschiedene Teile der App – charlietfl

+0

zu teilen Wenn Es spielt keine Sie es auch als Konstante exportieren ändern könnte. Ansonsten solltest du dem Rat von @ charlierfl folgen –

Antwort

1

Verwenden Sie eine Fabrik, um dieses Problem zu lösen. Beim Wechseln von Seiten können Daten in Fabriken und Diensten beibehalten werden.

angular.module('App', [...]) 

.factory('NotificationFactory', function() { 
    var notificationTypes: [ { NotificationType: '*', NotificationTitle: 'All notifications' }, 
       { NotificationType: '0', NotificationLabel: 'System Alert', NotificationTitle: 'System alerts' }, 
       { NotificationType: '1', NotificationLabel: 'Pending Task', NotificationTitle: 'Pending tasks' }, 
       { NotificationType: '2', NotificationLabel: 'Update', NotificationTitle: 'Updates' }, 
       { NotificationType: '3', NotificationLabel: 'Missed Message', NotificationTitle: 'Missed messages' } 
       ]; 

    return notificationTypes; 
})