当前位置: 首页 > 面试题库 >

如何在angularJS中配置routeProvider和locationProvider?

司马弘益
2023-03-14
问题内容

我想在angularJS中激活html5Mode,但是我不知道为什么它不起作用。我的代码有什么问题吗?

angular
    .module('myApp',[])
    .config(function($locationProvider, $routeProvider) {
        $locationProvider.html5Mode(true);
        $routeProvider.when('/', {
           templateUrl: 'partials/home.html', 
           controller: HomeCtrl
        });

        $routeProvider.when('/tags/:tagId', {
            templateUrl: 'partials/result.html', 
            controller: TagResultCtrl
        });
        //$routeProvider.otherwise({redirectTo: '/home', controller: HomeCtrl});
     });

在HTML

  <a href="tags/{{tag.id}}"><img data-ng-src="{{tag.imageUrl}}"></a>

问题答案:

我看到的唯一问题是相对链接和模板因此无法正确加载。

来自有关HTML5模式的文档

相对链接

请务必检查所有相对链接,图像,脚本等。您必须在主html文件(<base href="/my- base">)的开头指定网址库,或者必须/在所有地方都使用绝对网址(以开头),因为相对网址将解析为绝对网址使用文档的初始绝对URL,该URL通常与应用程序的根目录不同。

在您的情况下,可以/href属性中添加正斜杠(
自动$location.path执行此操作),也可以在配置路由时添加正斜杠。这样可以避免出现类似的路由,并确保模板正确加载。
__templateUrl``example.com/tags/another

这是一个有效的示例:

<div>
    <a href="/">Home</a> | 
    <a href="/another">another</a> | 
    <a href="/tags/1">tags/1</a>
</div>
<div ng-view></div>

app.config(function($locationProvider, $routeProvider) {
  $locationProvider.html5Mode(true);
  $routeProvider
    .when('/', {
      templateUrl: '/partials/template1.html', 
      controller: 'ctrl1'
    })
    .when('/tags/:tagId', {
      templateUrl: '/partials/template2.html', 
      controller:  'ctrl2'
    })
    .when('/another', {
      templateUrl: '/partials/template1.html', 
      controller:  'ctrl1'
    })
    .otherwise({ redirectTo: '/' });
});

如果使用的是Chrome,则需要从服务器上运行。



 类似资料:
  • 问题内容: 我目前有一个内置路由的AngularJS应用,它与静态属性分配完美配合。但是我真正想做的是为控制器分配不同的路由: 我想做的是在这里对我的财产做同样的事情,例如: 但似乎我得到一个错误,说找不到 所以有什么办法可以在路由配置中动态加载控制器功能名称? 问题答案: 使用angular ui-router可以做到这一点。 ui-router允许您指定“ controllerProvider

  • 我试图为我最后一年的项目建立一个搜索引擎。在过去的两个月里,我对这个话题做了很多研究。我发现我需要一个爬虫来爬行互联网,一个解析器和一个索引器。 我试图使用Nutch作为爬虫和solr索引Nutch抓取的数据。但是我被困在他们两个的安装部分。我试图安装Nutch和solr在我的系统帮助下,在互联网上的教程,但没有任何工作对我。 接下来,我被解析器困住了。我对这个阶段一无所知。我需要帮助这里关于如何

  • 我想使用eclipse IDE使用cucumber和selenium,但我需要帮助,我如何设置maven项目,以及在pom.xml文件中应该添加哪些依赖项,请提供步骤。

  • 我在Angular JS中使用routeProvider: 如何将param传递给控制器,并在这里调用返回数据的Ajax方法。此数据必须显示在的路由模板中。 示例: 我得到错误:

  • 这个问题听起来可能很傻,但对我来说却很头痛。我正在使用AMPS。。。我需要在我的项目中实现邮件通知。我已经下载了PHPmailer rar文件并解压缩到我的项目文件夹中。它包含,*get_oauth_token.php*src-Exception.php-oauth.php-PHPMailer.php-POP3.php-SMTP.php我在那个文件夹中只得到了这个文件。 这里我收到一条错误消息说,

  • 我的应用程序后端使用Spring Boot,前端使用Angular JS。 我使用Thymeleaf来支持多语言。Thymeleaf要求将所有html文件放在名为templates的文件夹下。 在前端,我使用angular的routeProvider重定向页面。代码如下: 在java端,我的WebConfig中有一些ViewController代码。JAVA 登录页面可以工作,但对于仪表板,Ang