Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 参数';控制器';没有定义_Ruby On Rails_Angularjs - Fatal编程技术网

Ruby on rails 参数';控制器';没有定义

Ruby on rails 参数';控制器';没有定义,ruby-on-rails,angularjs,Ruby On Rails,Angularjs,我正在做一个小rails/angular项目,试图从Instagram返回一个数据列表。Rails只是服务于文件,然后将部署到heroku。应用程序的其余部分是有角度的 我一直在犯错误 参数“MainController”不是函数,未定义 所以我知道这和我的控制器有关。我以前做过几个角度项目,让它们工作,我用这个重复了我的步骤,但是这个错误让我发疯,我似乎无法理解为什么我的控制器没有定义,它总是出现 这是我的密码 app.js var app = angular.module("hipstagr

我正在做一个小rails/angular项目,试图从Instagram返回一个数据列表。Rails只是服务于文件,然后将部署到heroku。应用程序的其余部分是有角度的

我一直在犯错误

参数“MainController”不是函数,未定义

所以我知道这和我的控制器有关。我以前做过几个角度项目,让它们工作,我用这个重复了我的步骤,但是这个错误让我发疯,我似乎无法理解为什么我的控制器没有定义,它总是出现

这是我的密码

app.js

var app = angular.module("hipstagram", ['ngResource']);
    app.factory('instagram', function($resource){
    return {
        fetchPopular: function(callback){

            var api = $resource('https://api.instagram.com/v1/media/popular?client_id=:client_id&callback=JSON_CALLBACK',{
                client_id: 'MY_CLIENT_ID'
            },{
                fetch:{method:'JSONP'}
            });

            api.fetch(function(response){
                callback(response.data);

            });
        }
    }
});
function MainController($scope, instagram){

    $scope.layout = 'grid';

    $scope.pics = [];

    instagram.fetchPopular(function(data){

        $scope.pics = data;
    });

});
assets/javascripts/angular/services/main.js

var app = angular.module("hipstagram", ['ngResource']);
    app.factory('instagram', function($resource){
    return {
        fetchPopular: function(callback){

            var api = $resource('https://api.instagram.com/v1/media/popular?client_id=:client_id&callback=JSON_CALLBACK',{
                client_id: 'MY_CLIENT_ID'
            },{
                fetch:{method:'JSONP'}
            });

            api.fetch(function(response){
                callback(response.data);

            });
        }
    }
});
function MainController($scope, instagram){

    $scope.layout = 'grid';

    $scope.pics = [];

    instagram.fetchPopular(function(data){

        $scope.pics = data;
    });

});
assets/javascripts/angular/controllers/main_ctrl.js

var app = angular.module("hipstagram", ['ngResource']);
    app.factory('instagram', function($resource){
    return {
        fetchPopular: function(callback){

            var api = $resource('https://api.instagram.com/v1/media/popular?client_id=:client_id&callback=JSON_CALLBACK',{
                client_id: 'MY_CLIENT_ID'
            },{
                fetch:{method:'JSONP'}
            });

            api.fetch(function(response){
                callback(response.data);

            });
        }
    }
});
function MainController($scope, instagram){

    $scope.layout = 'grid';

    $scope.pics = [];

    instagram.fetchPopular(function(data){

        $scope.pics = data;
    });

});
index.html.erb

<div ng-app="hipstagram" ng-controller="MainController">

    <div class="bar">
    </div>

    <ul ng-show="layout == 'grid'" class="grid">
        <!-- A view with big photos and no text -->
        <li ng-repeat="p in pics">
            <a href="{{p.link}}" target="_blank"><img ng-src="{{p.images.low_resolution.url}}" /></a>
        </li>
    </ul>

    <ul ng-show="layout == 'list'" class="list">
        <!-- A compact view smaller photos and titles -->
        <li ng-repeat="p in pics">
            <a href="{{p.link}}" target="_blank"><img ng-src="{{p.images.thumbnail.url}}" /></a>
            <p>{{p.caption.text}}</p>
        </li>
    </ul>
</div>

  • {{p.caption.text}


从我的故障排除中,可能angular无法访问主控制器,或者我只是将其命名为错误。如果是这样的话,任何关于如何通过考试的建议都会很好,我很困惑。谢谢你的帮助

不要定义全局MainController函数,而是执行以下操作:

var app = angular.module("hipstagram", ['ngResource']);
app.controller("MainController", ["$scope", "instagram" ,function($scope, instagram){

    $scope.layout = 'grid';

    $scope.pics = [];

    instagram.fetchPopular(function(data){

        $scope.pics = data;
    });

}]);
app.controller('MainController', function ($scope, instagram){

    $scope.layout = 'grid';

    $scope.pics = [];

    instagram.fetchPopular(function(data){

        $scope.pics = data;
    });

});

在angular应用程序中注册控制器,以便使用和注入依赖项。

不要定义全局MainController函数,请执行以下操作:

app.controller('MainController', function ($scope, instagram){

    $scope.layout = 'grid';

    $scope.pics = [];

    instagram.fetchPopular(function(data){

        $scope.pics = data;
    });

});

在angular应用程序中注册控制器,以便使用和注入依赖项。

不要定义全局MainController函数,请执行以下操作:

app.controller('MainController', function ($scope, instagram){

    $scope.layout = 'grid';

    $scope.pics = [];

    instagram.fetchPopular(function(data){

        $scope.pics = data;
    });

});

在angular应用程序中注册控制器,以便使用和注入依赖项。

不要定义全局MainController函数,请执行以下操作:

app.controller('MainController', function ($scope, instagram){

    $scope.layout = 'grid';

    $scope.pics = [];

    instagram.fetchPopular(function(data){

        $scope.pics = data;
    });

});

向angular应用程序注册控制器,以便使用和注入依赖项。

从angular 1.3开始,不再支持全局控制器功能。这是一个突破性的改变-使用app.controller(名称,fn)代替自angular 1.3起不再支持全局控制器功能。这是一个突破性的改变-使用app.controller(名称,fn)代替自angular 1.3起不再支持全局控制器功能。这是一个突破性的改变-使用app.controller(名称,fn)代替自angular 1.3起不再支持全局控制器功能。这是一个突破性的改变-改用app.controller(名称,fn)