2017-04-20 7 views
0

私の工場:

(function() { 

'use strict'; 

angular 
.module('XXX') 
.factory('SearchService', SearchService); 

SearchService.$inject = ['$resource', 'ApiConstants']; 

function SearchService($resource, ApiConstants) { 
    this.setName = function(data){ 
    console.log(data); 
    }; 
} 
return { 
    setName : this, 
    query: $resource(url + dataM, { 
    searchId: '@_id' 
}, {}) 
} 
}()); 

は、私は)(のsetNameから変数DATAMを取得する関数のsetName & $リソースを返すようにしたいです。どうやってやるの?

+0

最初に、 'searchController'にあなたの注射がお互いに順番になっていません。 – tanmay

+0

plz help、私はangularJSに慣れていません、私はバックエンドのAPIのためのいくつかのモジュールを修正しました。 –

答えて

0

まずあなたが次にコントローラにVAR変数

var vm = this 
vm.key = { 
     name: '' 
}; 
thisを割り当て可能な機能

.factory('SearchService', SearchService); 

SearchService.$inject = []; 

function SearchService() { 
    return { 
     setName: setName 
    } 

    function setName(data) { 
     console.log(data); 
    }; 
} 

を返却する必要がある工場で同じ順序で

searchController.$inject = ['SearchService', 'CurrentUser', 'ApiConstants', '$log', 'Authentication', '$state', '$location','$scope']; 
function searchController(SearchService, CurrentUser, ApiConstants, $log, Authentication, $state, $location, $scope) { 

を依存を追加する必要があります

Demo

+0

ありがとう、男。私は工場のために –

+0

をチェックしています、 'this.setName ...'はまだ動作します..工場のガイドライン通りではないと私は同意します:)# – tanmay

+0

@tanmay ' '工場の代わりに。なぜなら我々は 'service'を呼び出すときに新しいインスタンスを作成し、そのプロパティを' this'に割り当てるからです。しかし、工場では、同じインスタンスを呼び出すので、 'this'を使う必要はありません。 –

関連する問題