javascript - 无法读取未定义的属性 'index'

标签 javascript ruby-on-rails angularjs angularjs-resource

我对 Angular 非常陌生,并尝试在我的 Rails 应用程序中使用它。但我收到以下错误。

TypeError: Cannot read property 'index' of undefined

app.js 代码

angular.module('ticket', ['ngResource', 'ui.router', 'templates'])
.controller('AppCtrl', ['$rootScope', function($rootScope) {
    var _this = this;
    return $rootScope.$on('$routeChangeSuccess', function(event, current, previous) {
        return $rootScope.pageTitle = $route.current.title;
    });
}])
.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
    $stateProvider
        .state('home', {
            url: '/home',
            templateUrl: 'home/_home.html',
            controller: 'MainCtrl'
        })
        .state('members', {
            url: '/members',
            templateUrl: 'members/_members.html',
            controller: 'MemberCtrl'
        })
        .state('guards', {
            url: '/guards',
            templateUrl: 'guards/_guards.html',
            controller: 'GuardCtrl'
        })
        .state('tickets', {
            url: '/tickets',
            templateUrl: 'tickets/_tickets.html',
            controller: 'TicketCtrl'
        });
    $urlRouterProvider.otherwise('home')
}]);

memberCtrl.js代码(在members目录中)

angular.module('ticket')
.factory('Member', ['$resource', function($resource) {
    return $resource("/members/:id", {id: "@id"}, {
        get: { method: 'GET'},
        save: { method: 'POST'},
        index: { method: 'GET', isArray: true},
        remove: { method: 'DELETE'},
        "delete": { method: 'DELETE'},
        update: { method: 'PUT'}
    });
}])
.controller('MemberCtrl', ['$scope', function($scope, Member) {
    console.log(Member.index());
    $scope.members = Member.index();
}]);

最佳答案

您需要在 Controller 中正确注入(inject)依赖项Member

.controller('MemberCtrl', ['$scope', 'Member', function($scope, Member) {
                                    //^^^^^^^^^^

而不是

.controller('MemberCtrl', ['$scope', function($scope, Member) {

关于javascript - 无法读取未定义的属性 'index',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41341333/

相关文章:

javascript - 服务器 Node 代理中未发生 api 调用

ruby-on-rails - Rails 3和delayed_job在生产中

mysql - 如何创建一个 capistrano 任务来下载最新的 database_backup.tgz 并在本地导入?

javascript - 根据屏幕大小更改列数

javascript - AngularJS - UI 路由器 - 检查登录后闪烁

javascript - KnockoutJS 中变量 $data 的来源和用途是什么?

javascript - 使用单个图像实现悬停效果

javascript - 如何动态分配最大标签值?

javascript - 将表单输入限制为单个数字

javascript - 调用传入 Angular 指令的函数返回该函数而不是调用它