Emberjs-如何在组件方法中获取当前路由器路径
Emberjs - How do I get that current router path from in a component method
所以,这基本上就是我想要的。但我需要获得我可以在ember检查器中看到的当前路径,但我如何在组件中获得它?或者有更好的方法吗?也许是服务?
import Ember from 'ember';
var inject = Ember.inject;
// maybe rewrite nav link one of these options?
// http://discuss.emberjs.com/t/best-practice-for-a-dynamic-menu-bar/9094
export default Ember.Component.extend({
currentUser: inject.service('current-user'),
actions: {
logout: function () {
console.log('header logout');
this.get('currentUser').logout();
}
},
didInsertElement: function() {
// get current router path to implement if statements on header navigation
if(path==='search-results'){
jQuery('.showSearchButton').show();
} else {
jQuery('.showSearchButton').hide();
}
}
});
<div id="header" class="header navbar navbar-default navbar-fixed-top" data-state-change="disabled">
<!-- begin container -->
<div class="container-fluid">
<!-- begin navbar-header -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#header-navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<button type="button" class="showSearchButton navbar-search collapsed" onclick="jQuery('.collapse.navbar-collapse.in').collapse('hide');" data-toggle="collapse" data-target="#search-navbar">
<i class="fa fa-search"></i>
</button>
<img src="assets/images/logo.png" alt="Logo">
{{/link-to}}
</div>
<!-- end navbar-header -->
<!-- begin navbar-collapse -->
<div class="collapse navbar-collapse navbar-right" id="header-navbar">
<ul class="nav navbar-nav">
{{#if currentUser.logged}}
{{#if currentUser.hasDashboardPermissions}}
{{#nav-link-to 'dashboard.list' data-toggle='collapse' data-target='#header-navbar'}}Admin{{/nav-link-to}}
{{/if}}
{{#nav-link-to 'user.profile' data-toggle='collapse' data-target='#header-navbar'}}Account{{/nav-link-to}}
<li><a href="#" {{action 'logout' on="click"}}>Log Out</a></li>
{{else}}
{{#nav-link-to 'auth.register' class='reg' data-toggle='collapse' data-target='#header-navbar'}}Register{{/nav-link-to}}
{{#nav-link-to 'auth.login' data-toggle='collapse' data-target='#header-navbar'}}Login{{/nav-link-to}}
{{/if}}
</ul>
<ul class="nav navbar-nav visible-xs">
<li role="separator" class="divider"></li>
{{#nav-link-to 'about' data-toggle='collapse' data-target='#header-navbar'}}About{{/nav-link-to}}
{{#nav-link-to 'how-it-works' data-toggle='collapse' data-target='#header-navbar'}}How it works{{/nav-link-to}}
{{#nav-link-to 'terms-of-service' data-toggle='collapse' data-target='#header-navbar'}}Terms of Service{{/nav-link-to}}
{{#nav-link-to 'support' data-toggle='collapse' data-target='#header-navbar'}}Support{{/nav-link-to}}
{{#nav-link-to 'contact-us' data-toggle='collapse' data-target='#header-navbar'}}Contact Us{{/nav-link-to}}
</ul>
</div>
<!-- end navbar-collapse -->
<div class="collapse navbar-collapse" id="search-navbar">
{{find-it header=true withSearch=withSearch class='inhead' inHeader=true}}
</div>
</div>
<!-- end container -->
</div>
<Ember 2.3
this.get('container').lookup('controller:application').currentPath;
Ember 2.3或更高版本
import Ember from 'ember';
const { getOwner } = Ember;
export default Ember.Component.Extend({
...
currentPath: Ember.computed(function() {
return getOwner(this).lookup('controller:application').currentPath;
}),
...
});
相关文章:
- React路由器服务器端渲染和ajax获取数据
- Ui路由器:获取控制器中视图的名称
- Meteor正在从路由器获取数据
- 铁路由器获取当前项目
- 从 UI 路由器$stateChangeStart获取父状态
- Ember.js路由器,从视图获取路由器
- 使用koa2和koa路由器为RESTapi获取204-未传递响应体
- React路由器<link>如何在Jest测试中获取href的值
- 如何获取WiFi路由器信息
- Emberjs-如何在组件方法中获取当前路由器路径
- 无法获取用户 ID 路由参数以在反应路由器中继上工作
- 刷新页面在反应路由器 2 中给出无法获取 /page_url
- 如何获取 ui 路由器状态参数
- 流星 - 页面刷新导致在为路由器获取数据时闪烁
- 无法获取/使用手动键入的URL - 反应路由器
- 使用角度 ui 路由器获取服务中的路由参数
- 反应路由器无法获取/取决于输入函数
- 在主干应用程序中获取以前的路由器/URL
- Meteor Iron路由器如何获取POST数据
- 使用路由器管理获取图像资源的请求