[英]How to generate url for a route in Ember.js
我想知道如何为给定路线生成网址。
我有呼叫列表(db实体),用户可以选择多个呼叫并通过电子邮件与其他人共享。
在创建所选调用的子节点之后,带有散列和关系的db行包含所选调用。 现在我需要生成可以通过电子邮件发送的链接。 此链接与呼叫路由列表不同。
所以问题是: 是否可以通过Ember.js中的route和params生成url? 谢谢。
您可以使用Router#generate
委托给router.js库 。
App = Ember.Application.create();
App.Router.map(function() {
this.resource('post', { path: '/posts/:post_id' }, function(){
this.route('edit');
});
});
App.Post = Ember.Object.extend();
App.IndexRoute = Ember.Route.extend({
model: function() {
return [
App.Post.create({
id: 5,
title: 'I am post 5'
}),
App.Post.create({
id: 6,
title: 'I am post 6'
}),
App.Post.create({
id: 7,
title: 'I am post 7'
})];
},
actions: {
showUrl: function(post) {
alert(this.router.generate('post.edit', post));
}
}
});
App = Ember.Application.create();
App.Router.map(function() {
this.resource('post', { path: '/posts/:post_id' }, function(){
this.route('edit');
});
});
App.Post = Ember.Object.extend();
App.IndexRoute = Ember.Route.extend({
model: function() {
return [
App.Post.create({
id: 5,
title: 'I am post 5'
}),
App.Post.create({
id: 6,
title: 'I am post 6'
}),
App.Post.create({
id: 7,
title: 'I am post 7'
})];
},
actions: {
showUrl: function(post) {
alert(this.router.generate('post.edit', post));
}
}
});
这就是{{#link-to ...}}
助手在幕后使用的内容。
这可以在任何带有RouterService的Ember.js类中RouterService
。 自Ember.js 2.15和3.x以来可用。 路由功能不再局限于Route
。
import Component from '@ember/component';
import { inject as service } from '@ember/service';
export default Component.extend({
router: service(),
actions: {
showUrl(post) {
alert(this.get('router').urlFor('post.edit', post));
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.