AngularJS否则功能将我重定向到错误的路线

时间:2014-02-25 10:48:03

标签: javascript angularjs angularjs-routing

我有这样的路线:

$routeProvider
    .when('/settings', { templateUrl: 'settingsTemplateURL', controller: settingsCtrl })
    .when('/profile', { templateUrl: 'profileTemplateURL', controller: profileCtrl })
    .otherwise({ redirectTo: '/settings' });

我在这样的地址上使用我的webb:localhost / testapp /#/ settings或localhost / testapp /#/ profile等...

当我请求地址时问题就开始了:localhost / testapp在这一刻,否则函数会将我重定向到localhost / testapp#/ settings,其中缺少'testapp'之后的斜杠。这是AngularJS版本之间的差异,因为在将AngularJS从版本1.0.7更新到1.2.13后出现此问题

有人可以帮帮我吗? 谢谢大卫

2 个答案:

答案 0 :(得分:1)

问题是localhost。 尝试使用:http://127.0.0.1/代替localhost

当$ .route尝试恢复模板时,您可能仍会遇到问题,有时因为没有发送正确的标头而无效,但这取决于您的设置。

有效吗?

答案 1 :(得分:0)

要让它在本地主机中工作,你必须像这样远程调用路由:

    $routeProvider.when('/home',      {   
             templateUrl: 'http://yoururl.com/model/app/whatever.php',       
             controller: 'Dashboard'      
    })

请务必添加可信来源:

$sceDelegateProvider.resourceUrlWhitelist(['self','http://yoururl.com/model/app/**']); 

和你的php:

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: origin, content-type, accept');

它有效。

这是它与localhost

一起使用的唯一方式