私が開発している小さな AngularJS アプリに問題があります。私は主にjQuery開発者です。だから私に気楽に行きなさい;)
$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()) からトリガーされ、新しいアイテムをカテゴリに挿入する 2 番目のスコープができました。この新しいアイテムを既存の $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 内で何かを push() しようとすると、次のエラーが発生します。
TypeError: オブジェクト # にはメソッド 'push' がありません
このエラーが発生する理由を知っている人はいますか? 私は正しくないことをしていますか?
ajax 呼び出しが完了し、成功のコールバックがトリガーされますが、push() で問題が発生します。
私はAngularjsを学んでいるので、しばらくお待ちください:)