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)所在的位置。
我也有另一個控制器誰也使用工廠,但不應該是一個問題吧?
謝謝你的時間。
這是因爲你的注入是錯誤的。更正注射順序,如['$ scope','$ http','$ window','dataService',函數($ scope,$ http,$ window,dataService) –