Ember.js 创建Ember.Object的数组
我相信这个基本问题有一个简单的解决方案,但坦率地说,我在Emberjs.com和Stackoverflow上都找不到它(也许我问错了问题) 我正在使用amChart库来绘制数据图表。amChart要求我传递一个“标准”对象数组。因此,我尝试使用toArray()方法将我的Ember.object转换为数组。但是我知道现在toArray()方法创建了一个Ember.objects数组,结果amChart找不到我在amChart中映射的属性 换句话说,我需要一个数组,该数组的属性可以通过常规javascript语法(数组[1].attribute)而不是“object.get('attribute')”进行访问 或者我应该采取另一种方法 更新 根据下面的答案,我得出结论,我需要为amChart创建一个新数组:Ember.js 创建Ember.Object的数组,ember.js,amcharts,Ember.js,Amcharts,我相信这个基本问题有一个简单的解决方案,但坦率地说,我在Emberjs.com和Stackoverflow上都找不到它(也许我问错了问题) 我正在使用amChart库来绘制数据图表。amChart要求我传递一个“标准”对象数组。因此,我尝试使用toArray()方法将我的Ember.object转换为数组。但是我知道现在toArray()方法创建了一个Ember.objects数组,结果amChart找不到我在amChart中映射的属性 换句话说,我需要一个数组,该数组的属性可以通过常规java
chartData: function() {
var statVals = this.get('chapters.statVals');
var statArray= statVals.toArray();
var amCharts = [];
var chartData = [];
for (var i = 0; i < statArray.length; i++) {
chartData.push({
time: statArray[i].get('time'),
value: statArray[i].get('value'),
});
}
return chartData;
}.property(),
chartData:function(){
var statVals=this.get('chapters.statVals');
var statArray=statVals.toArray();
var amCharts=[];
var chartData=[];
对于(var i=0;i
如果有人有更有效/更好的方法来解决这个问题,我很乐意修改这个解决方案。我想说你有两个选择:
get()
()即可访问正常属性。这应该像传递普通的JS对象(真正意义上的余烬对象)一样工作toJsObject()
(或类似)将其转换为普通JS对象、计算属性和所有属性。例如:
var Widget = Ember.Object.extend({
toJsObject: function() {
return {
prop1: this.get('prop1'),
prop2: this.get('prop2')
};
}
});
// ...
var normalObjects = emberObjects.toArray().map(function(obj) {
return obj.toJsObject();
});
你的数据看起来像什么?返回这个。getProperties('prop1','prop2')更干净。你是说不使用
get()
?