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