2016-07-27 5 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

() 권리 ? 내 공장에는 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'}); 
    }); 
}; 

그것은 말한다 (작동하지 않음) : 당신이 원하는 할 어떤 종류의 데이터 정의되지 않은