2015-10-13 47 views
0

因爲我一直在盯着這個問題好幾天了,我在AngularJS有點新,我想也許這裏有人可以幫助我。所以,我的問題:TypeError:無法讀取未定義的屬性'addTopic'。我瞎了嗎?

我得到一個類型錯誤時,我嘗試保存在論壇上一個新的話題,我創建:我控制器

module.controller('newTopicController', ['$scope', '$http', 'dataService', function ($scope, $http, $window, dataService) { 
$scope.newTopic = {}; 

$scope.save = function() { 

    dataService.addTopic($scope.newTopic) 
    .then(function() { 
     $window.location = "/#"; 
    }, 
    function() { 
     alert("couldnt save topic"); 
    }); 
}; 
}]); 

而且我廠:

module.factory("dataService", function ($http, $q) { 

var _topics = []; 
var _isInit = false; 

var _isReady = function() { 
    return _isInit; 
}; 

var _getTopics = function() { 

    var deferred = $q.defer(); 

    $http.get("/api/topics?withReplies=true") 
    .then(function (result) { 
     angular.copy(result.data, _topics); 
     _isInit = true; 
     deferred.resolve(); 
    }, 
    function() { 
     deferred.reject(); 
    }); 

    return deferred.promise; 
}; 

var _addTopic = function (newTopic) { 
    var deferred = $q.defer(); 

    $http.post("/api/topics", newTopic) 
    .then(function (result) { 
     var createdTopic = result.data; 
     _topics.splice(0, 0, createdTopic); 
     deferred.resolve(createdTopic); 
    }, 
    function() { 
     deferred.reject(); 
    }); 

    return deferred.promise; 
}; 

return { 
    topics: _topics, 
    getTopics: _getTopics, 
    addTopic: _addTopic, 
    isReady: _isReady 
}; 
}); 

所以當我嘗試向論壇添加主題時,我只是得到了「TypeError:無法在控制器中讀取未定義的屬性'addTopic',在dataService.addTopic($ scope.newTopic)所在的位置。

我也有另一個控制器誰也使用工廠,但不應該是一個問題吧?

謝謝你的時間。

+0

這是因爲你的注入是錯誤的。更正注射順序,如['$ scope','$ http','$ window','dataService',函數($ scope,$ http,$ window,dataService) –

回答

3

這似乎是不正確的:

module.controller('newTopicController', ['$scope', '$http', 'dataService', function ($scope, $http, $window, dataService) {...} 

將其更改爲:

module.controller('newTopicController', ['$scope', '$http', '$window', 'dataService', function ($scope, $http, $window, dataService) {...} 
+0

非常感謝!我想我真的很盲目:P – markbutiken

相關問題