我有一個問題,我正在開發一個小的AngularJS應用程序。我主要是一個jQuery開發人員。這樣下去容易在我身上;)AngularJS推()錯誤
我有一個工廠,是通過$ HTTP調用讓我的類別:
app.factory('simpleFactory', function($http, $routeParams) {
var categories = [];
var factory = {};
factory.getCategories = function() {
return $http({
url: '/system/getlist/',
data: { id : pageID },
method: "POST",
})
.success(function(addData) {
categories = addData;
});
}
return factory; });
我的控制器創建一個範圍,正從我的工廠數據:
app.controller('loadCategories', function ($scope, simpleFactory) {
$scope.categories = [];
init();
function init() {
$scope.categories = simpleFactory.getCategories();
}
});
現在我有第二個範圍從我的視圖觸發(createCategory())插入一個新的項目在我的cateogories。現在我想將這個新項目推送到我的現有$ scope.categories中。我試圖這樣做:
$scope.createCategory = function(cat,catName,catLvl,catType) {
var catName = catName;
var parentID = cat.id;
$http({
url: '/system/createcategory/',
data: { catName : catName, parentID : parentID, pageID: pageID, catLvl: catLvl, catType: catType },
method: "POST",
})
.success(function(addData) {
$scope.categories.push(addData);
});
}
這最後一個控制器也住在loadCategories控制器中。
問題:
當我試圖把()裏面的東西我$ scope.categories我得到以下錯誤:
類型錯誤:對象#有沒有方法 '推'
有沒有人有一個想法,爲什麼我得到這個錯誤?我在做那些不正確的東西嗎?
ajax調用完成,成功回調被觸發,但push()出現問題。
我剛學Angularjs,所以請耐心等待:)
是的!非常感謝你。我確實在使用承諾對象,這不是一個數組......因此推送數據是不可能的。 – Xeon