Javascript 路由中没有绑定数据?
我被困在这个Codecademy AngularJs项目的最后一部分 我使用了路由,路由工作(单击时会更改视图),但不显示数据绑定。我已经检查了index.html,所以我认为那里没有错误。你能检查一下吗?代码如下: app.jsJavascript 路由中没有绑定数据?,javascript,angularjs,angular-routing,Javascript,Angularjs,Angular Routing,我被困在这个Codecademy AngularJs项目的最后一部分 我使用了路由,路由工作(单击时会更改视图),但不显示数据绑定。我已经检查了index.html,所以我认为那里没有错误。你能检查一下吗?代码如下: app.js var app = angular.module('CalendarApp', ['ngRoute']) app.config(['$routeProvider', function($routeProvider) { $routeProvider .when('
var app = angular.module('CalendarApp', ['ngRoute'])
app.config(['$routeProvider', function($routeProvider) {
$routeProvider .when('/', {
controller: 'DayController',
templateUrl: 'views/day.html'
}).when('/:id',{
controller: 'EventController',
templateUrl: 'views/event.html'
}).otherwise({
redirectTo: '/'
});
}]);
app.controller('EventController', ['$scope', 'events', '$routeParams', function($scope, $routeParams, events) {
$scope.eventId = $routeParams.id;
events.success(function(data) {
$scope.event = data.events;
});
}]);
app.controller('EventController', ['$scope', 'events','$routeParams', function($scope, events, $routeParams) {
// code in regards to itemId etc.
events.getEvents().then(function(d){
$scope.event = d.data.events;
});
}]);
events.js(服务)
EventController.js
var app = angular.module('CalendarApp', ['ngRoute'])
app.config(['$routeProvider', function($routeProvider) {
$routeProvider .when('/', {
controller: 'DayController',
templateUrl: 'views/day.html'
}).when('/:id',{
controller: 'EventController',
templateUrl: 'views/event.html'
}).otherwise({
redirectTo: '/'
});
}]);
app.controller('EventController', ['$scope', 'events', '$routeParams', function($scope, $routeParams, events) {
$scope.eventId = $routeParams.id;
events.success(function(data) {
$scope.event = data.events;
});
}]);
app.controller('EventController', ['$scope', 'events','$routeParams', function($scope, events, $routeParams) {
// code in regards to itemId etc.
events.getEvents().then(function(d){
$scope.event = d.data.events;
});
}]);
event.html(查看)
events.js
尝试返回承诺,但只加载一次
app.factory('events', ['$http', function($http) {
var promise = $http.get('https://s3.amazonaws.com/codecademy-content/courses/ltp4/events-api/events.json');
return {
getEvents : function(){ return promise; }
}
}]);
现在,如果您使用console.log,您应该在控制器中接收Promise对象
EventController.js
var app = angular.module('CalendarApp', ['ngRoute'])
app.config(['$routeProvider', function($routeProvider) {
$routeProvider .when('/', {
controller: 'DayController',
templateUrl: 'views/day.html'
}).when('/:id',{
controller: 'EventController',
templateUrl: 'views/event.html'
}).otherwise({
redirectTo: '/'
});
}]);
app.controller('EventController', ['$scope', 'events', '$routeParams', function($scope, $routeParams, events) {
$scope.eventId = $routeParams.id;
events.success(function(data) {
$scope.event = data.events;
});
}]);
app.controller('EventController', ['$scope', 'events','$routeParams', function($scope, events, $routeParams) {
// code in regards to itemId etc.
events.getEvents().then(function(d){
$scope.event = d.data.events;
});
}]);
(考虑到您提到的其他功能可以正常工作)
让我知道它是否有效数据中没有
id
,那么您想在url中将它与什么匹配?@charlietfl我想id
只是我可以用来获取索引的一个名称?然后,我使用索引来获取EventController中所需的信息?这是不正常的,因为索引将在动态数据中更改,但现在可以与静态数据一起工作。我应该如何使其工作?您是否需要my DayController和days.html视图的代码?您有多少项?考虑一下数据库,您将为每一行提供一个唯一的标识符,如id
。如果你没有很多,就加一个。然后迭代数组以查找匹配项