javascript - $location的概念

标签 javascript angularjs

我不明白这个。在我本地,我正在尝试开发一个网站。在该网站链接在应用程序中工作,但当我尝试 F5 或复制该链接并将其粘贴到浏览器时,我收到 404 页面未找到错误。我用谷歌搜索了一下,发现这与解析 URL 有关,但不知道如何做到这一点。这是我的代码:

Javascript

.config(function($stateProvider, $urlRouterProvider, $locationProvider) {
$stateProvider
    .state('baba', {
        url: "/",
        templateUrl: "baba.html"
    })
    .state('icerik', {
        url: "/icerik/:ad",
        templateUrl: "icerik.html",
        controller: "mmgCtrl",
    })
    .state('oku', {
        url: "/oku/:serix/:klasor",
        templateUrl: "oku.html",
        controller: "nbgCtrl"
    })
$locationProvider.html5Mode(true);
$urlRouterProvider.otherwise('/');

.controller('indexCtrl', function($scope, $location) {
    $scope.yonlen = $location.path();
})

我有两条路线。 /icerik/oku。所以我认为我应该对哪个 url 进行哪个范围的 if 语句。

index.html

<div ng-repeat="manga in mangas">

<a ng-href="{{yonlen}}></a>

</div>

最佳答案

在幕后,这使用了pushState

当您使用 JavaScript 更改页面状态时,您应该将 URL 更改为会使服务器生成处于该状态的页面。

这意味着 if the JavaScript failed for any reason ,内容would still load correctly如果有人点击深层链接,他们会直接(因此很快)加载他们真正关心的内容。

例如:

  • 访问者到达主页
  • 服务器提供主页(以及所有 Angular 代码)
  • 他们点击“博客”链接
  • 您加载博客内容并将其放在页面上(使用 JS)
  • 您将 URL 更改为 /blog/(仍然使用 JS),而无需从服务器加载新页面

但是然后:

  • 访问者到达博客
  • 服务器交付博客页面(以及所有 Angular 代码)

您正在更改 URL,但尚未在该 URL 中放置正确的内容。这需要服务器端工作。

关于javascript - $location的概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33198045/

相关文章:

javascript - 可调整大小的 Vue-good-table 或 Vue

javascript - 包含在 ng 重复中

javascript - 是否可以在自定义指令中使用理解表达式?

angularjs - 在angularjs中按属性执行Group By和Sum

javascript - 在 JSON 内部创建链接并通过 AngularJS 将其注入(inject)到 dom 中

javascript - Express 和 angularJs $location.path 不重定向到/

javascript - 如何在 D3 强制布局中将鼠标悬停在节点上时显示文本

javascript - 如何在 HTTPS 配置的 Express 服务器上避免 "Site not secure"

javascript - 理论上,这个 For-Loop 应该工作吗?

javascript - 关于 jquery 追加行为