2014-11-21 87 views
0

我已經聲明瞭一個帶有三個函數的工廠。我能夠調用get函數,但不能用另外兩個。函數在angularjs工廠中未定義

todomvc.factory('todoStorage', function ($q,$http) { 
     var STORAGE_ID = 'todos-angularjs-perf'; 
    function get(){ 
     return $http.get('test.json'); 
    } 
    function display(){ 
     console.log("testing"); 
    } 
    function put(todos) { 
     console.log(todos); 
     return $http.get('test.json'); 
    } 
    return{get:get}; 
    return{put:put}; 
    }); 

在調用控制器的功能,

display(); // undefined here 
todoStorage.put(todos); // undefined here too 

如果我做了一個錯誤?

+0

您的工廠認定中是wrong..check http://stackoverflow.com/questions/26906503/passing-arguments -to-工廠/ 26906603#26906603 – Asik 2014-11-21 19:08:46

回答

2

angular中的工廠是返回對象的函數。

您有多個return語句:

return {get: get}; 
return {pug: put}; 

將其更改爲:

return { 
    get: get, 
    put: put, 
    display: display 
}