2016-07-27 3 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'}); 
    }); 
}; 

Он говорит: Не удается прочитать свойство «толчок» неопределенной

Смежные вопросы