2016-09-29 66 views
0

我真的被這個代碼困住了,找不到解決方案。我創建了一個連接到Firebase的Ionic應用程序,我的身份驗證工作正常;可以傳遞數據,但我看不到應該如何正確傳遞下面的代碼。形態結構:Firebase離子代碼實現

Form Structure

我傳遞數據,服務代碼:

factory('Products', function($firebaseArray) { 
    var productsRef = new Firebase("https://kidsmoments-19623.firebaseio.com/momentos"); 
    var products =$firebaseArray(productsRef.child('products')); 
    var Products = { 
     saveProduct: function (product, image) { 
       var newProduct = { 
        name: product.name 
        , tagline: product.tagline 
        , description: product.description 
        , price: product.price 
        , image: image 
       }; 
       return products.add(newProduct).then(function() { console.log('added'); 
      }) 
    } 
     }; 
return Products; 

     } 
) 
+0

對不起,我得到的錯誤是:VM23799 ionic.bundle.js:26771錯誤:[$注射器:unpr]未知提供者:ProductsProvider < - Products < - settingsController –

回答

0

看起來你忘了添加「產品」爲你工作的控制器的依賴。

你也應該嘗試火力地堡三方結合:

.factory("Products", ["$firebaseObject", "$rootScope", 
    function($firebaseObject, $rootScope) { 
     return function() { 

      // create a reference to the database where our Products is. 
      var ref = ($rootScope.ref.child("Products")) 

      return $firebaseObject(reg); 
     } 
    } 
]) 

而且從控制器:

Products().$bindTo($scope, "products"); 

現在你做$任何變化scope.products將會同步到火力地堡

+0

嗯,我在我的控制器產品:我添加的最後一個...
'Use Strict'; angular.module('App').controller('settingsController',function($ scope,$ state,$ cordovaOauth,$ localStorage,$ log,$ location,$ http,$ ionicPopup,$ firebaseObject,Auth,FURL,Products ){ var ref = firebase.database()。ref –

+0

請用正確的縮進編寫代碼,這樣更容易閱讀。你還會得到同樣的錯誤嗎? –

+0

好吧,我認爲必須使用firebase配置。一方面,我有firebase.initializeApp(FURL); var ref = firebase.database()。ref(); var auth = $ firebaseAuth();另一方面,我需要創建de product.js firebase配置:var productsRef = new Firebase(「https://kidsmoments-19623.firebaseio.com/momentos」); var products = $ firebaseArray(productsRef.child('products'));,對不起,我不知道如何斷線。謝謝 –

0

我相信你有一個實體產品,所以請參考該實體並推送像這樣的數據:

var productsRef = new Firebase("https://kidsmoments-19623.firebaseio.com/momentos/products"); 

productsRef.push({ 
    name: product.name, 
    tagline: product.tagline, 
    description: product.description, 
    price: product.price, 
    image: image 
}) 

更新關於你請的錯誤確保您已注入的提供者設置控制器