2012-10-25 49 views
1

我的路线例如:

angular.module('test', [], function ($routeProvider) { 
$routeProvider.when('/', { 
    templateUrl: 'pageOne.html', 
    controller: ControllerOne 
}).when('/?:foo, { templateUrl: ' 
pageTwo.html ', controller: ControllerTwo });` 

但如果我喜欢加载我http://example.com/?someFoo路线页面没有加载ControllerTwo,它加载ControllerOne。我做错了什么?谢谢。

回答

0

我认为格式不正确。

angular.module('test', [], function ($routeProvider) { 
$routeProvider.when('/', { 
    templateUrl: 'pageOne.html', 
    controller: 'ControllerOne' 
}).when('/foo/:foo', { templateUrl: ' 
pageTwo.html ', controller: 'ControllerTwo' }); 

和加载页面像http://example.com/#/foo/someFoo

我建议你有

.otherwise({ redirectTo: '/nosuchpage.html'}) 

然后,你就会知道,如果你的链接是错误的。

+0

是的,它的工作很好,但我需要与/?foo的网址,因为应用程序搜索匹配在json文件 – ivarnavsky

0

您需要将控制器名称作为字符串

这工作

var myApp = angular.module('myApp',[],function($routeProvider) {   

    $routeProvider 
     .when('/home',{templateUrl:'home.html'}) 
     .when('/page1',{templateUrl:'page1.html', controller:'ctrl1'}) 
     .when('/page2',{templateUrl:'page2.html', controller:'ctrl2'}) 
     .otherwise({redirectTo:'/home'}); 

}); 

function ctrl1($scope){ 
    $scope.something = 'Hello from page 1'; 
} 
function ctrl2($scope){ 
    $scope.something = 'Hello from page 2'; 
} 

的jsfiddle:http://jsfiddle.net/jaimem/T2TWB/1/

+0

感谢您的答案,但在我的情况下url必须是/?foo。我使用$ location.search()方法。 – ivarnavsky