2016-04-03 8 views
0

Ich versuche, ionische & eckig zu lernen, indem Sie eine grundlegende SMS-App. Also fing ich mit der Tabs-Vorlage an, die von ionic zur Verfügung gestellt wurde und bin gerade dabei, Dinge zu optimieren, um herauszufinden, wie alles funktioniert.Unbekannter Anbieter beim Erstellen von Dienst - Angular

Wie auch immer, ich versuche, die Konversation ID aus einer Tabellenzeile an einen Conversation Controller zu übergeben, so dass es die Ansicht mit den relevanten Informationen füllen kann.

Hier ist mein Controller:

var baxter = angular.module('baxter'); 

baxter.controller('ConversationsCtrl', function($scope, 

conversationService) { 
    $scope.conversations = conversationService.conversations; 

    $scope.setCurrentConversation = function(convoID){ 
    conversationService.selectedConversation(convoID); 
    } 
}); 

Der Service:

var baxter = angular.module('baxter'); 

baxter.service('conversationService', function($http) { 
    this.conversations = [ 
    { title: 'Jill Sanders', id: 1 }, 
    { title: 'Bobby Duck', id: 2 }, 
    { title: 'Boatie McBoatface', id: 3 }, 
    { title: 'Jesus Christ', id: 4 }, 
    { title: 'Tall Blonde', id: 5 }, 
    { title: 'Mom', id: 6 } 
    ]; 

    this.selectedConversation = function(conversationID) { 
    console.log(conversationID); 
    } 

    return this; 
}); 

Der Fehler:

0  780569 error Error: [$injector:unpr] Unknown provider: conversationServiceProvider <- conversationService <- ConversationsCtrl 
+0

Code sieht korrekt aus .. nur, was ich sagen kann, ist, überprüfen Sie, ob die 'service.js' Datei geladen wurde oder nicht. indem Sie die Entwicklerkonsole öffnen. –

+0

Kennen Sie ionic? Ich bin nicht sicher, wie ionic zu debuggen, da es die Befehlszeile und einen Ios-Simulator verwendet – broderickga

+0

Kann im Browser auch zum Debuggen – charlietfl

Antwort

-1

Sie überschreiben die Variable baxter wenn Sie var baxter wieder neu deklarieren. Dadurch wird eine neue Instanz erstellt und die vorherige Deklaration geht verloren.

Um sich nicht um die Ladereihenfolge kümmern zu müssen und keine globale Variable zur Darstellung der Module zu verwenden, würde ich vorschlagen, die Module var überhaupt nicht zu verwenden einfach tun:

angular.module('baxter').controller('ConversationsCtrl', ... ; 

angular.module('baxter').service('conversationService'.... 

Wenn mehrere Komponenten in einer Datei sind, können Sie diese auch Kette:

angular.module('baxter') 
    .controller('ConversationsCtrl',function(/* dependencies*/){ 

    }) 
    .service('conversationService'.... 

Referenz: John Papa Angular 1 Style Guide

+0

Ich glaube nicht, was Sie darauf hingewiesen werden, ist ein Problem mit OP aktuellen Problem ... es ist gut, etwas zu haben .. –

Verwandte Themen