【发布时间】:2015-03-14 10:26:18
【问题描述】:
我是 Ember.js 和 Ember-cli 的新手,遇到了无法在我的 中获取特定 模型值这一相当基本的问题ArrayController 并在此处对其进行操作。我通过 ember.js 文档阅读了几次关于控制器设置和模型显示的文档
http://emberjs.com/guides/controllers/representing-multiple-models-with-arraycontroller/
但我的情况还没有找到解决方案。
这是我的路由、控制器和模型文件:
// /routes/sequences.js
import Ember from 'ember';
var SequencesRoute = Ember.Route.extend({
model: function() {
return this.store.find('sequences');
},
setupController: function(controller, model) {
this._super(controller, model);
}
});
export default SequencesRoute;
// /controllers/sequences.js
import Ember from 'ember';
var SequencesController = Ember.ArrayController.extend({
init: function() {
this._super();
this.typeSeq();
},
i: 0,
seqData: function(){
var seq = this.get('model.nts');
return seq;
}.property('model.nts'),
len: function(){
var slen = this.get('seqData');
return slen.length;
}.property('seqData'),
typeSeq: function() {
var tthis = this;
var sequence = this.get('seqData');
var lenn = this.get('len');
if (tthis.i <= lenn){
console.log(tthis.i);
console.log(sequence.substring(tthis.i,tthis.i+1));
tthis.i++;
Ember.run.later(function(){
tthis.typeSeq();
}, 200
);
}
else{
return false;
}
}
});
export default SequencesController;
// /models/sequences.js
import DS from 'ember-data';
var Genes = DS.Model.extend({
geneName: DS.attr('string'),
nts: DS.attr('string')
});
Genes.reopenClass({
FIXTURES: [
{
id: 1,
geneName: "Monoamine Oxidase A",
nts: "CTGCAGCGAGCGCGGGAAGCGGGACAGGGCCTAGAGTCACTTCTCCCCGCCCCTGACTGGCCCG"
},
{
id: 2,
geneName: "Monoamine Oxidase B",
nts: "TTTCTGCAGCGAGCGCGGGAAGCGGGACAGGGCCTAGAGTCACTTCTCCCCGC"
}
]
});
export default Genes;
我不清楚在我的控制器中设置 seqData 的属性。究竟需要调用什么才能将我的模型数据放入属性中?我的路由器中的 setupController 方法会在我的 ArrayController 中设置一个 model 属性,以便我可以通过 model.nts 获取它吗?现在,我的 ember 应用程序将构建,但在 typeSeq 函数中设置的 var sequence 仍未定义。
很高兴听到您的回答或获取有关此主题的精彩教程的链接!
【问题讨论】:
标签: javascript ember.js controller ember-data ember-cli