试图让我的 Resolve 注入我的控制器,以便能够注入 HTML
Trying to get my Resolve to inject into my controller to be able to inject into the HTML
这是我的 index.js 文件
'use strict';
angular.module('wildenglish', ['ngAnimate', 'ngTouch', 'restangular', 'ngRoute', 'ui.bootstrap'])
.config(function ($routeProvider, RestangularProvider) {
RestangularProvider.setBaseUrl('https://www.googleapis.com/calendar/v3/calendars/googleCalendarID');
$routeProvider
.when('/', {
templateUrl: 'app/main/main.html',
controller: 'MainCtrl',
resolve: {
calendarEvents: function(Restangular){
return Restangular.one('eventsAUTHKEY').get();
}
}
})
.otherwise({
redirectTo: '/'
});
})
还有我的主要controller.js
'use strict';
angular.module('wildenglish')
.controller('MainCtrl', function(Restangular, calendarEvents) {
var self = this,
events = calendarEvents,
items = events.items;
});
我尝试在 HTML 中使用时收到的错误是:
错误:[$injector:unpr] 未知提供者:calendarEventsProvider <- calendarEvents <- MainCtrl
所以我想弄清楚如何利用我从 Promise 中取回的信息,我可以登录控制台以供 HTML 通过控制器访问
我需要服务或工厂吗?那会去哪里?
提前感谢您的帮助
将已解决的承诺返回的事件分配给您的控制器范围。您需要更改注入控制器的依赖项。你可以省略 Restangular,因为你在你的路线中解决你的承诺,但你确实需要 $scope:
angular.module('wildenglish').controller('MainCtrl', function($scope, calendarEvents) {
// i'm assuming the following logs your events to your console
// if not you're having a problem with your Restangular request
console.log(calendarEvents);
// Assign calendarEvents to your $scope
$scope.events = calendarEvents;
});
现在您可以在 HTML 模板中使用事件(假设每个事件都有一个名为 'name' 的 属性):
<ul>
<li ng-repeat="event in events">{{event.name}}</li>
</ul>
抱歉,我错过了上面已经是正确答案的答案。
这里也有类似的问题:
AngularJS, resolve and unknown provider
基本上,如果您使用 routeProvider 在脚本文件中分配控制器,则不能在模板中使用 ng-controller。
这是我的 index.js 文件
'use strict';
angular.module('wildenglish', ['ngAnimate', 'ngTouch', 'restangular', 'ngRoute', 'ui.bootstrap'])
.config(function ($routeProvider, RestangularProvider) {
RestangularProvider.setBaseUrl('https://www.googleapis.com/calendar/v3/calendars/googleCalendarID');
$routeProvider
.when('/', {
templateUrl: 'app/main/main.html',
controller: 'MainCtrl',
resolve: {
calendarEvents: function(Restangular){
return Restangular.one('eventsAUTHKEY').get();
}
}
})
.otherwise({
redirectTo: '/'
});
})
还有我的主要controller.js
'use strict';
angular.module('wildenglish')
.controller('MainCtrl', function(Restangular, calendarEvents) {
var self = this,
events = calendarEvents,
items = events.items;
});
我尝试在 HTML 中使用时收到的错误是:
错误:[$injector:unpr] 未知提供者:calendarEventsProvider <- calendarEvents <- MainCtrl
所以我想弄清楚如何利用我从 Promise 中取回的信息,我可以登录控制台以供 HTML 通过控制器访问
我需要服务或工厂吗?那会去哪里?
提前感谢您的帮助
将已解决的承诺返回的事件分配给您的控制器范围。您需要更改注入控制器的依赖项。你可以省略 Restangular,因为你在你的路线中解决你的承诺,但你确实需要 $scope:
angular.module('wildenglish').controller('MainCtrl', function($scope, calendarEvents) {
// i'm assuming the following logs your events to your console
// if not you're having a problem with your Restangular request
console.log(calendarEvents);
// Assign calendarEvents to your $scope
$scope.events = calendarEvents;
});
现在您可以在 HTML 模板中使用事件(假设每个事件都有一个名为 'name' 的 属性):
<ul>
<li ng-repeat="event in events">{{event.name}}</li>
</ul>
抱歉,我错过了上面已经是正确答案的答案。
这里也有类似的问题:
AngularJS, resolve and unknown provider
基本上,如果您使用 routeProvider 在脚本文件中分配控制器,则不能在模板中使用 ng-controller。