在EmberJS中链接

时间:2016-04-18 20:41:58

标签: ember.js

我有一个Rails API和EmberCLI前端应用程序。我的页面显示了艺术家列表。点击艺术家应该在页面上发送用户的所有专辑。我需要链接到用户的相册页面。每位艺术家都有自己的专辑页面。喜欢localhost:4200 / artists / 1。这就是我所拥有的:

我的路由器:

import Ember from 'ember';
import config from './config/environment';

const Router = Ember.Router.extend({
  location: config.locationType
});

Router.map(function() {
  this.route('artists');
  this.route('artist', { path: 'artist/:artist_id' });
});


export default Router;

模特艺术家:

import DS from 'ember-data';

export default DS.Model.extend({
  name: DS.attr('string'),
  itunes_id: DS.attr('number'),
  albums: DS.hasMany('album')

});

模特专辑:

import Model from 'ember-data/model';
import DS from 'ember-data';

export default Model.extend({
  name: DS.attr('string'),
  artwork_url_100: DS.attr('string'),
  artist_id: DS.attr('number'),
  artist: DS.belongsTo('artist')

});

路线:1)artist.js

import Ember from 'ember';

export default Ember.Route.extend({
  model() {
    return this.store.findAll('artist')
    return this.store.findRecord('artist', params.artist_id);}
    });

2)album.js

import Ember from 'ember';

export default Ember.Route.extend({
  model() {
  return this.store.findAll('album');}
});

1 个答案:

答案 0 :(得分:2)

就像@ timmy-omahony所提到的那样,文档中有一个whole guide about linking。您需要使用CASE WHEN h.user_id <=> :user_id THEN '1' ELSE '0' END paid 帮助程序,并将其传递给适当的配置:

link-to

在这个例子中,我使用了所谓的{{#link-to 'artist' 1}}Artist page{{/link-to}} 助手的块形式。把手标签之间的内容将是链接锚内的内容。我告诉它要链接到标识为link-to的艺术家的artist页面。

您也可以动态传递值:

1

或者你可以传递艺术家对象本身,将跳过模型钩子,默认情况下,id将序列化为URL:

{{#link-to 'artist' artist.id}}Artist page{{/link-to}}