Javascript 路由中没有绑定数据?

Javascript 路由中没有绑定数据?,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('

我被困在这个Codecademy AngularJs项目的最后一部分

我使用了路由,路由工作(单击时会更改视图),但不显示数据绑定。我已经检查了index.html,所以我认为那里没有错误。你能检查一下吗?代码如下:

app.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; 
    });

}]);
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
。如果你没有很多,就加一个。然后迭代数组以查找匹配项