首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Predix种子应用程序-从url中删除散列

Predix种子应用程序-从url中删除散列
EN

Stack Overflow用户
提问于 2017-02-13 10:03:35
回答 2查看 261关注 0票数 1

我正在使用Predix种子,我试图从URL中删除#,这样

代码语言:javascript
复制
http://localhost:5000/#/dash

变成了

代码语言:javascript
复制
http://localhost:5000/dash

做这件事最好的方法是什么?

seed-app.html页面是我认为可以配置URL结构的地方,它有以下关键元素

代码语言:javascript
复制
...
<!-- app route -->
<link rel="import" href="../../bower_components/app-route/app-location.html">
<link rel="import" href="../../bower_components/app-route/app-route.html">
...
<!-- px components -->
<link rel="import" href="../../bower_components/px-app-nav/px-app-nav.html">
<link rel="import" href="../../bower_components/px-view/px-view.html">

<!-- app-location captures url and assigns _route value -->
          <app-location
            id="carbonLocation"
            route="{{_route}}"
            use-hash-as-path>
          </app-location>

          <!-- /dashboards route and view -->
          <app-route
            route="[[_route]]"
            pattern="/dashboards"
            active="{{_dashboardsActive}}">
          </app-route>
...
 <script>
    Polymer({
      is: 'seed-app',
      properties: {
        routesActive: {
          type: Boolean,
          value: false
        },
...
 // Sets app default base URL for client-side routing
        pathPrefix: {
          type: String,
          value: '#'
        }
      },
      ready: function(){
        this._checkForDefaultRoute();
      },
      _checkForDefaultRoute: function() {
        // set default route to /dashboards
        var l = window.location;
        if((l.hash === "#/" || l.hash === "") && l.pathname === "/") {
          l.hash = "/dashboards";
        }
      }
    });
  </script>

我删除了pathPrefix

代码语言:javascript
复制
pathPrefix: {
   type: String,
   value: ''
}

并将_checkForDefaultRoute函数更改如下

代码语言:javascript
复制
_checkForDefaultRoute: function() {
    // set default route to /runtime
    var l = window.location;
    if((l.hash==="") && l.pathname==="/"){
      l.pathname="/login";
    }
  }

其结果是,我仍然需要使用#作为前缀到达页面。

EN

回答 2

Stack Overflow用户

发布于 2017-02-13 21:46:29

票数 2
EN

Stack Overflow用户

发布于 2019-01-29 13:18:41

新版本的predix应用程序不使用散列#。请访问

https://github.com/predixdesignsystem/px-sample-app

一般来说,新的px应用程序版本使用dom-if

代码语言:javascript
复制
 <template is="dom-if" if="{{isEqual(selected,'dashboard')}}" restamp>
   <px-sample-dashboard></px-sample-dashboard>
</template>

哪里

代码语言:javascript
复制
  selected: {
        type: Array,
        value: function() {
          return ["dashboard"];
        }
      },

然后可以使用px-app-nav来选择页面。

代码语言:javascript
复制
  <px-app-nav slot="app-nav" selected-route="{{selected}}"
    items='[{"label": "Dashboard","path": "dashboard","icon": "px-fea:dashboard", "id": "dashboard"}]'>
  </px-app-nav>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42201326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档