Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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 AngularJS未加载到其他路径_Javascript_Json_Angularjs_Node.js_Ngroute - Fatal编程技术网

Javascript AngularJS未加载到其他路径

Javascript AngularJS未加载到其他路径,javascript,json,angularjs,node.js,ngroute,Javascript,Json,Angularjs,Node.js,Ngroute,我相信这个问题以前已经得到了回答,但我不知道该如何表达,所以我在谷歌上找不到任何东西 我正在使用Node.js、Express和Angular编写一个网站。我的Angular应用程序仅在访问主页127.0.0.1:8080时加载。当我点击一个链接查看127.0.0.1:8080/review/8ja9d8Kkjnmd时,我成功地路由到我的angular应用程序中的下一个控制器和下一个页面。但是,如果我手动输入url并按enter键,node.js api只为我提供JSON,我为Angular应用

我相信这个问题以前已经得到了回答,但我不知道该如何表达,所以我在谷歌上找不到任何东西

我正在使用Node.js、Express和Angular编写一个网站。我的Angular应用程序仅在访问主页127.0.0.1:8080时加载。当我点击一个链接查看127.0.0.1:8080/review/8ja9d8Kkjnmd时,我成功地路由到我的angular应用程序中的下一个控制器和下一个页面。但是,如果我手动输入url并按enter键,node.js api只为我提供JSON,我为Angular应用程序提供JSON

因此Angular应用程序获取这个JSON并为我的视图呈现它。如何通过手动输入url而不仅仅ping节点api来加载角度页面

我觉得这将是一个常见的问题,我再次道歉,因为我相信它已经被回答了一次又一次

这是我的angular应用程序的结构

public/js
├── app.js
├── appRoutes.js
├── controllers
│   ├── MainCtrl.js
│   └── ReviewCtrl.js
├── views
│   ├── index.html
│   ├── home.html
│   └── review.html
└── services
    ├── MainService.js
    └── ReviewService.js
app.js是:

// public/js/app.js
angular.module('sampleApp', 
    ['ngRoute', 'appRoutes', 'MainCtrl','MainService','ReviewCtrl','ReviewService','underscore']);
appRoutes.js是:

// public/js/appRoutes.js
angular.module('appRoutes', []).config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
  $routeProvider
    // home page
    .when('/', {
      templateUrl: 'views/home.html',
      controller: 'MainController'
    })
    .when('/review/:review_id', {
        templateUrl: 'views/review.html',
        controller: 'ReviewController'
    })
    .otherwise({redirectTo: '/'});
  $locationProvider.html5Mode(true);
}]);

如果还有其他代码需要发布,请告诉我。

我尝试过发表评论,但无法发表。你的问题已经回答了。但基本上,当启用HTML5时,浏览器无法知道路径是否正确。另外,我建议你阅读上一篇文章


PS:对不起,我说的是英语

你可以使用html5Modefalse,或者你必须更新你的服务器,为你提供每个请求的索引页。你的节点api也在127.0.0.1:8080上运行?与angular应用程序具有相同的路由行为?如果你只是为了确定而禁用html5模式,这可能会有所帮助。chrome在html5模式上也有问题。如果将html5设置为false,我会失去什么优势?无论如何,这是行不通的。这只是通过点击链接或手动键入url使angular无法加载。因此,在此之前,angular将通过单击链接加载,而不是手动输入url。现在,angular并没有加载到这两个场景中,不同之处在于它们中并没有它的url使用哈希,比如/routeName,服务器在url中并没有看到虚拟目录