2016-04-03 81 views
0

我想通過製作一個基本的短信應用程序來學習離子&角度。所以我開始使用由離子提供的選項卡模板,並且只是調整一些事情來弄清楚一切是如何工作的。創建服務時未知的提供商 - Angular

無論如何,我試圖將對話ID從表格行傳遞給對話控制器,以便它可以用相關信息填充視圖。

這裏是我的控制器:

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

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

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

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

服務:

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; 
}); 

錯誤:

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

代碼看起來是正確的..唯一可以說的是,請仔細檢查'service.js'文件是否已被加載。通過開放開發者控制檯.. –

+0

你是否熟悉離子?我不知道如何調試離子,因爲它使用命令行和一個IOS模擬器 – broderickga

+0

可以在瀏覽器中運行離子也可用於調試 – charlietfl

回答

-1

當你再次重新聲明var baxter要覆蓋變量baxter。這將創建一個新的實例和以前的聲明將丟失

爲了不擔心加載順序和不使用全局變量來表示模塊我建議你根本不使用var參考模塊和簡單地做:

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

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

如果多個組件在一個文件中,你也可以把它們連:

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

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

參考:John Papa Angular 1 Style Guide

+0

我不這麼認爲你所指出的是OP當前問題的一個問題......它有很好的東西.. –