在路线图中添加查询字符串 URL
Add query string in route map URL
我正在使用 Ember 2.7。有没有办法在路由映射中指定查询参数URL
router.js
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
this.route('index', {path: '/'});
this.route('books', function() {
this.route('index', {path: '?page=0&perPage=25'});
this.route('view', {path: '/view/:bookIdid'});
this.route('new');
});
上面的代码正在生成以下 URL "localhost:4200/books/?page=0&perPage=25",我不确定为什么它在查询参数之前添加斜杠。
导航
<ul class="nav nav-pills">
<li class="nav-item">
{{#link-to "products.index" class="nav-link vf-nav-types"}} Product Types{{/link-to}}
</li>
<li class="nav-item">
{{#link-to "books.index" class="nav-link vf-nav-books"}} Books {{/link-to}}
</li>
<li class="nav-item">
{{#link-to "apps.index" class="nav-link vf-nav-application"}} Application {{/link-to}}
</li>
如有任何帮助,我们将不胜感激。
据我所知,无法执行您的操作(至少达到 Ember 2.8),queryParams
在控制器中声明,如 documentation 中所述。
你必须像这样在控制器中声明它们:
import Ember from 'ember';
export default Ember.Controller.extend({
queryParams: ['category'],
category: null //or some other default value
});
在浏览您的应用程序时,您可以使用 link-to
帮助程序来设置查询参数,就像这样
{{#link-to "someroute" (query-params category="something")}}Go!{{/link-to}}
下面的代码是错误的。
this.route('index', {path: '?page=0&perPage=25'});
你需要考虑 queryParams
所以在控制器中定义 page
和 perPage
。this.route('index', {path: '/'});
它会默认添加,您不需要将其包含在 router.js
中。 guide link
已创建 Sample Twiddle 用于演示。
import Ember from 'ember';
export default Ember.Controller.extend({
queryParams: ['page','perPage'],
page: 1, //1 is default value
perPage:25,
});
this.route('view', {path: '/view/:bookIdid'});
考虑实施动态细分。 guide link
最好遵循 ember 定义动态段的约定,而不是 bookIdid
将其替换为 :model-name_id
。
我正在使用 Ember 2.7。有没有办法在路由映射中指定查询参数URL
router.js
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
this.route('index', {path: '/'});
this.route('books', function() {
this.route('index', {path: '?page=0&perPage=25'});
this.route('view', {path: '/view/:bookIdid'});
this.route('new');
});
上面的代码正在生成以下 URL "localhost:4200/books/?page=0&perPage=25",我不确定为什么它在查询参数之前添加斜杠。
导航
<ul class="nav nav-pills">
<li class="nav-item">
{{#link-to "products.index" class="nav-link vf-nav-types"}} Product Types{{/link-to}}
</li>
<li class="nav-item">
{{#link-to "books.index" class="nav-link vf-nav-books"}} Books {{/link-to}}
</li>
<li class="nav-item">
{{#link-to "apps.index" class="nav-link vf-nav-application"}} Application {{/link-to}}
</li>
如有任何帮助,我们将不胜感激。
据我所知,无法执行您的操作(至少达到 Ember 2.8),queryParams
在控制器中声明,如 documentation 中所述。
你必须像这样在控制器中声明它们:
import Ember from 'ember';
export default Ember.Controller.extend({
queryParams: ['category'],
category: null //or some other default value
});
在浏览您的应用程序时,您可以使用 link-to
帮助程序来设置查询参数,就像这样
{{#link-to "someroute" (query-params category="something")}}Go!{{/link-to}}
下面的代码是错误的。
this.route('index', {path: '?page=0&perPage=25'});
你需要考虑 queryParams
所以在控制器中定义 page
和 perPage
。this.route('index', {path: '/'});
它会默认添加,您不需要将其包含在 router.js
中。 guide link
已创建 Sample Twiddle 用于演示。
import Ember from 'ember';
export default Ember.Controller.extend({
queryParams: ['page','perPage'],
page: 1, //1 is default value
perPage:25,
});
this.route('view', {path: '/view/:bookIdid'});
考虑实施动态细分。 guide link
最好遵循 ember 定义动态段的约定,而不是 bookIdid
将其替换为 :model-name_id
。