javascript - Data not binding in route? -
i stuck in last part of codecademy angularjs project
i have used routing , routing works (it changes view when clicked), doesn't show data binding. have checked index.html don't think there's mistake there. please check it? here code:
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: '/' }); }]); events.js (service)
app.factory('events', ['$http', function($http) { return $http.get('https://s3.amazonaws.com/codecademy-content/courses/ltp4/events-api/events.json').success(function(data) { return data; }).error(function(err) { return err; }); }]); eventcontroller.js
app.controller('eventcontroller', ['$scope', 'events', '$routeparams', function($scope, $routeparams, events) { $scope.eventid = $routeparams.id; events.success(function(data) { $scope.event = data.events; }); }]); event.html (view)
<div class="event-detail"> <h2 class="event-name">{{event[eventid].name}}</h2> </div> and here's short format of events.json data i'm trying get:
{ "date": 1421384400000, "events": [ { "name": "casual friday", "from": 1421384400000, "to": 1421470800000, "where": "" }, { "name": "taco time", "from": 1421431200000, "to": 1421438400000, "where": "brooklyn taco co. 120 essex street new york, ny 10002" } ] }
events.js try returning promise, load once;
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; } } }]); now if console.log should recieve promise object in controller.
eventcontroller.js
app.controller('eventcontroller', ['$scope', 'events','$routeparams', function($scope, events, $routeparams) { // code in regards itemid etc. events.getevents().then(function(d){ $scope.event = d.data.events; }); }]); (considering rest of functionality works mentioned) let me know if works
Comments
Post a Comment