Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角路由不工作_Javascript_Angularjs_Url Routing - Fatal编程技术网

Javascript 角路由不工作

Javascript 角路由不工作,javascript,angularjs,url-routing,Javascript,Angularjs,Url Routing,我正在尝试在Angular应用程序中设置一些基本路线,但似乎无法使ngView正常工作。下面是我的相关index.html代码、模块和配置: index.html: <body ng-app="myApp"> <h3>Testing is live</h3> <div ng-view></div> </body> app.config.js: angular.module('myApp') .config(fu

我正在尝试在Angular应用程序中设置一些基本路线,但似乎无法使
ngView
正常工作。下面是我的相关index.html代码、模块和配置:

index.html:

<body ng-app="myApp">
  <h3>Testing is live</h3>
  <div ng-view></div>
</body>
app.config.js:

angular.module('myApp')
  .config(function($routeProvider, $locationProvider) {
    $routeProvider.when('/player/:playerId',
      {
        template: '<h1>testing...</h1>',
        controller: 'PlayerInfoController',
        controllerAs: 'playerInfo'  
      }
    );

    $locationProvider.html5Mode({
      enabled: true,
      requireBase: false,
      rewriteLinks: false
    });
  });
angular.module('myApp')
.config(函数($routeProvider,$locationProvider){
$routeProvider.when(“/player/:playerId”,
{
模板:“测试…”,
控制器:“PlayerFoController”,
控制器:“playerInfo”
}
);
$locationProvider.html5模式({
启用:对,
requireBase:错,
重写链接:false
});
});

例如,当我访问
/player/56
时,我看到的是“测试是实时的”,而不是我预期的“测试…”。取而代之的是该部分中的

在解决了双重声明问题后,您能告诉我路线是否被击中了吗?当您导航到该路径时,是否会在您的chrome开发者工具控制台中调用PlayerFoController中的console.log?或者您是否收到任何类型的错误?

我对上述代码进行了两次更改以使其正常工作,但我不完全理解为什么需要这样做;对我来说,这似乎是一个“骇客”的解决方案

在我的配置文件中:

$locationProvider.html5Mode({
  enabled: true,
  requireBase: false,
  rewriteLinks: false
});
替换为:

$locationProvider.html5Mode(true);
我在index.html文件的
头部添加了以下内容:

<base href="/player">


仅供参考,根据您发布的内容,您两次声明模块“myApp”。如果要创建新模块,请使用数组并传入依赖项。当您只想引用该模块时,不要使用该阵列。console.log从不激发,因此我的控制器似乎从未为该路由运行。此外,没有错误消息。您是否将加载的index.html文件包括在内?每个angularjs文件都需要单独加载。因此,您需要一个脚本标记(包含app.js的文件)和一个加载配置文件的脚本标记。是的,index.html中包含了必要的文件。我只是把它们从我发布的代码中删掉,以保持我的文章简洁。很高兴看到你找到了一个有效的解决方案。对不起,我帮不了你了!我更熟悉Angular的UI路由器(我完全建议!)。该项目的问题已经存在了一段时间的内置角路由器。如果时间允许的话,我可能会重构它以使用UI路由器。看起来你和我读过相同的教程。你解决了我的一个问题。
<base href="/player">