Angular.js:为演示应用添加简单路线?

时间:2013-05-03 05:56:53

标签: angularjs

我正在构建一个非常简单的演示Angular应用程序,看看它与Backbone的比较,我在路由方面遇到了困难,尽管我已经阅读了routing tutorial

我希望每当<select>元素更改为/LHR/SFO时,我的演示应用中的路线都会更新,或者无论选择的新值是什么(并且可能是{没有历史记录API的浏览器中的{1}}等。

我还希望路由器在页面加载时处理初始路径,并设置/#LHR选项的默认值。

这是我的HTML - 我只有一个模板:

<select>

这是我的JS:

<html ng-app="angularApp">
[...]
<body ng-controller="AppCtrl">
<select ng-model="airport" ng-options="item.value as item.name for item in airportOptions" ng-change='newAirport(airport)'></select>
<p>Current value: {{airport}}</p>
</body></html>

我完全不确定我是否正确设置了路由提供程序,目前它正在给我var angularApp = angular.module('angularApp', []). config(['$routeProvider', function($routeProvider) { $routeProvider. when('/:airportID', {templateUrl: 'angular.html', controller: AppCtrl}). otherwise({redirectTo: '/'}); }]); angularApp.controller('AppCtrl', function AppCtrl ($scope, $http, $routeParams) { $scope.airportOptions = [ { name: 'London Heathrow', value: 'LHR' }, { name: 'San Francisco International', value: 'SFO' }, { name: 'Paris Charles de Gaulle', value: 'CDG' } ]; $scope.airport = $scope.airportOptions[0].value; // Or the route if provided $scope.newAirport = function(newAirport) { console.log('newAirport', newAirport); }; }); 。我做错了什么?

更新:我通过将AppCtrl放在引号中修复了ReferenceError,感谢评论者。现在我的问题是当我尝试导航到Uncaught ReferenceError: AppCtrl is not defined from angularApp$routeParams为空。如何获取路径参数?

更新2:让路线正常工作 - 虽然感觉有点黑客。我做得对吗?

/#LHR

0 个答案:

没有答案