Ember和Ember-cli动态路线问题

时间:2014-08-27 12:39:10

标签: ember.js ember-cli

我在同时学习ember.js和ember-cli方面遇到了很多困难,主要是试图将ember.js帮助文档中的内容翻译成ember-cli环境。我一直在试图弄清楚如何将动态细分与“#id;”之外的字段一起使用。

Emberjs.com它给出了一个使用jQuery.getJSON和序列化函数的例子,但我不知道

1)如何从ember-cli引用jquery(如果我甚至需要按照上面链接所说的方式进行),并且

2)似乎无论我尝试什么,我都会得到错误"无法调用方法获取' undefined'"在我的序列化函数

我目前正在使用transitionToRoute,因为我尝试从按钮转换而不是link-to帮助(更好的推荐非常受欢迎)。

这是我的按钮使用的操作(它在控制器中):

actions: {
  viewDetails: function() {
    this.transitionToRoute('project-details', this.get('projectName'));
  }
}

如果我的路线是:

this.resource('project-details', {path: '/project/:project_projectName'});

然后Ember文档会建议我在项目详细信息路径中需要这个,但我还没有让序列化器的任何排列工作,所以我确定我在做什么有些不对劲,但我不知道是什么。

model: function(params) {
    //I've tried all kinds of things in here, not sure if I need getJSON
    // since right now I'm just using fixture data
    //If I do need jQuery, not sure how to use it in ember-cli (i.e. the import statement to use)
    return jQuery.getJSON('/project/' + params.project_projectName);
},

serialize: function(model) {
  return { project_projectName: model.get('projectName') };
}

编辑:添加模型

var Project = DS.Model.extend({
  creationDate: attr('date'),
  lastModifiedDate: attr('date'),
  lastModifiedResourceId: attr('string'),
  ppmcNumber: attr('number'),
  ppmcUrl: attr('string'),
  phase: attr('string'),
  staffingProfile: attr('string'),
  projectType: attr('string'),
  projectDesc: attr('string'),
  product: attr('string'),
  clientId: attr('string'),
  clientName: attr('string'),
  overallStatus: attr('string'),
  liveDate: attr('date'),
  rygStatus: function(){
    return 'status-' + this.get('overallStatus').toLowerCase();
  }.property('overallStatus')
});

1 个答案:

答案 0 :(得分:1)

你需要使用Ember.get,因为你的对象不是Ember对象(通过将对象包装在Ember.Object.create({})中可以很容易地纠正,但getter和setter只适用于Ember对象)< / p>

serialize: function(model) {
  return { project_projectName: Em.get(model, 'projectName') };
}