javascript - AngularJS push() 错误

标签 javascript angularjs

我在开发一个 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; });

我的 Controller 创建了一个范围,从我的工厂获取数据:

app.controller('loadCategories', function ($scope, simpleFactory) {
$scope.categories = [];
init();

function init() {
    $scope.categories = simpleFactory.getCategories();
}

});

现在我有第二个作用域,它从我的 View (createCategory()) 触发以在我的类别中插入一个新项目。现在我想将这个新项目推送到我现有的 $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); 

    }); 
}

最后一个 Controller 也存在于 loadCategories Controller 中。

问题:

当我尝试在我的 $scope.categories 中 push() 一些东西时,我收到以下错误:

TypeError: Object # has no method 'push'

有人知道我为什么会收到此错误吗?我在做不正确的事情吗?

ajax 调用完成并触发成功回调,但 push() 出现问题。

刚学Angularjs,请耐心等待:)

最佳答案

$scope.categories = simpleFactory.getCategories()

返回promise object ,但不是数组。并且 promise 对象没有方法 push()。 更改 getCategories() 方法以返回一个数组。

关于javascript - AngularJS push() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19230595/

相关文章:

javascript - 操作由 Promise AngularJS 返回的返回变量

javascript - 对对象属性输出感到困惑

javascript - AngularJS 中短名称和全名的自定义过滤器

angularjs - 预先输入对象数组?

javascript - 从 $routeProvider 访问 Controller

javascript - 遍历javascript中对象的所有成员

JavaScript 扩展方法

javascript - 有没有办法在 angular-ui-router 中获取子状态列表?

javascript - Angular + ui-router::on 状态完成回调

javascript - Angular 1.3.15 覆盖第三方指令中的变量