2016-09-22 55 views
0

在我services.js文件我有以下$resource連接到我的RESTAPI ...角的工廠方法不會被調用

app.factory('Profile', function ($resource) { 
    console.log("here"); 
    var Bear = $resource('http://192.168.0.11:3000/api/bears/:id', {id:'@id'}); 
    Bear.save({name:"Yogi"}); 
}); 

現在,我想測試是否能夠正常工作,但從未達到console.log("here");

這是包含我的控制我的app.js文件...

​​

正如你可以看到我包括ngResource但還是工廠方法不被調用。我究竟做錯了什麼?

+1

1調用運行塊的方法),你的工廠沒有按」 t返回任何東西。 2)您需要將'Profile'工廠注入某處以便創建它並執行內容。這隻會發生一次,雖然 – Phil

回答

1

正如@Phil提到的,你的工廠只是坐在那裏什麼都不做,因爲:

  1. 它不注入任何控制器或服務。 (或者你的情況app.run塊)

解決方案:其注入旁邊$ ionicPlatform的app.run塊

  • Profile工廠應該被稱爲從app.run塊使用名爲saveBear的方法。
  • 解決方法:更改services.js這個代碼:

    app.factory('Profile', function ($resource) { 
        var saveBear = function(){ 
         console.log("here"); 
         var Bear = $resource('http://192.168.0.11:3000/api/bears/:id',{id:'@id'}); 
         Bear.save({name:"Yogi"}); 
        } 
    
        return { 
        saveBear: saveBear 
        } 
    
    }); 
    

    然後使用語句

    Profile.saveBear();

    +0

    我把'Profile.saveBear();'在運行中,我得到'配置文件未定義'。有什麼我需要補充嗎? – Bolboa

    +0

    在這行中'app.run(function($ ionicPlatform,Profile){')在$ ionicPlatform旁邊的服務依賴項中包含Profile。另外,你是否在index.html中包含了文件services.js?如果不行。 –

    +0

    哈哈它的工作。謝謝你的幫助,我一直在強調這一段時間 – Bolboa