2016-07-27 60 views
1

我有以下工廠的工作。但我想添加數據到工廠,我不知道該怎麼做。將數據添加到工廠@角

感謝您的幫助!

app.factory('Favorites', function($http, $q){ 
    var factory = { 
     artists : false, 
     getArtists : function(){ 
      var deferred = $q.defer(); 
      if(factory.artists !== false){ 
       console.log('true'); 
       deferred.resolve(factory.artists); 
      }else{ 
       console.log('false'); 

       $http.get('https://homechefhome.fr/rise/favorites-artists.php?user_id=10155092792384782') 
        .success(function(data, status){ 
         // if everything is good, we save data in factory 
         factory.artists = data; 
         console.log('L55', factory.artists, status); 
         deferred.resolve(factory.artists); 
        }).error(function(data, status){ 
         deferred.reject('No data collected'); 
         console.log('L59', data, status); 
       }); 
      } 
      return deferred.promise; 
     } 
    }; 
    return factory; 
}); 
+0

你想要做什麼樣的數據的特性「推」添加,在什麼情況下你會添加它? –

+0

你是什麼意思添加數據?你能詳細說明一下嗎 – Naveen

+0

你是否想要爲工廠返回的內容增加額外的數據?像其他領域什麼的? –

回答

0

如果您希望將數據「添加」到應用程序中,則必須在控制器中引用工廠和getArtists函數。像這樣的事情應該做的伎倆:

angular.module('myApp', []) 
.controller('MainCtrl', function($scope, $http, Artists) { 
    $scope.artists = Artists.getArtists(); 
    console.log($scope.artists); 
}); 

如果這不是你想要的讓我知道,我會修改我的答案。通過

+0

就這樣,我只得到的數據,但我不能添加到Artists.getArtists () 對 ? 假設我的工廠裏有4位藝術家,但我想補充一點,我該怎麼辦? –

0

通常,

加入這一行:factory.artists.push({MyObj中: '的HelloWorld'}); 我實際上可以添加對象,但我想從視圖/控制器中執行此操作。

$http.get('https://homechefhome.fr/rise/favorites-artists.php?user_id=10155092792384782') 
    .success(function(data, status){ 
    // if everything is good, we save data in factory 
    factory.artists = data; 


    factory.artists.push({myobj:'helloworld'});//add an object, I want to do that from a controller, another view 


    console.log('ligne 55',factory.artists, status); 
    deferred.resolve(factory.artists); 
}).error(function(data, status){ 
    deferred.reject('No data collected'); 
    console.log('ligne 59', data, status); 
}); 

這是從控制器代碼:(它不工作)

$scope.addFavoriteArtist = function(){ 
    Favorites.getArtists().then(function(){ 
     Favorites.factory.push({hello:'Controller'}); 
    }); 
}; 

它說:無法讀取的不確定