相关疑难解决方法(0)

$ location /在html5和hashbang模式/链接重写之间切换

我的印象是Angular会重写在tempaltes中的锚标记的href属性中出现的URL,这样无论是在html5模式还是hashbang模式下它们都能正常工作.位置服务文档似乎说HTML链接重写处理了hashbang情况.因此,我希望在不在HTML5模式下,插入哈希值,并且在HTML5模式下,它们不会.

但是,似乎没有重写.以下示例不允许我只更改模式.应用程序中的所有链接都需要手动重写(或者在运行时从变量派生.我是否需要根据模式手动重写所有URL?

我没有在Angular 1.0.6,1.1.4或1.1.3中看到任何客户端URL重写.似乎所有href值都需要以#/为hashbang模式和/为html5模式.

是否有必要进行重写?我误读了文档吗?做些别傻话?

这是一个小例子:

<head>
    <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.3/angular.js"></script>
</head>

<body>
    <div ng-view></div>
    <script>
        angular.module('sample', [])
            .config(
        ['$routeProvider', '$locationProvider',
            function ($routeProvider, $locationProvider) {

                //commenting out this line (switching to hashbang mode) breaks the app
                //-- unless # is added to the templates
                $locationProvider.html5Mode(true);

                $routeProvider.when('/', {
                    template: 'this is home. go to <a href="/about"/>about</a>'
                });
                $routeProvider.when('/about', {
                    template: 'this is about. go to <a href="/"/>home</a'
                });
            }
        ])
            .run();
    </script>
</body>
Run Code Online (Sandbox Code Playgroud)

附录:在重新阅读我的问题时,我发现我使用了"重写"一词,但没有明确说明我何时以及何时进行重写.问题是如何让Angular在呈现路径时重写URL,以及如何在两种模式下统一解释JS代码中的路径.它不是关于如何使Web服务器执行HTML5兼容的请求重写.

angularjs angular-routing

179
推荐指数
2
解决办法
17万
查看次数

告诉屏幕阅读器,Backbone/Angular单页面应用程序中的页面已更改

想象一下,你有一个简单的单页应用程序 - 无论它是使用Backbone,Angular,Ember还是其他任何东西编写的.

如果跟踪路线,你如何告诉屏幕阅读器我们改变了'页'?

在一个典型的应用程序,当我从导航/index.html/about.html屏幕阅读器显然检测的页面变化,并重新读取,你所期望的.

然而,在我的Backbone应用程序中,当我遵循路线时,我无法确定如何触发"重新读取"​​.我试过触发一个focus我在某个地方看过的事件,但这似乎不起作用.

注意:我目前正在使用NVDA/Chrome进行测试.

javascript accessibility backbone.js angularjs single-page-application

14
推荐指数
2
解决办法
6391
查看次数