如何从Ember中的夹具数据中获取随机值

时间:2013-07-23 21:17:23

标签: javascript ember.js ember-data

我正在玩一个示例Ember应用程序,该应用程序显示存储在Fixture中的所有数据,最后尝试显示来自灯具的随机数据。

在此完成演示:http://jsbin.com/ifatot/2/edit

一切正常,但是,我无法从Ember数据中获得随机索引。我试图找到它的长度并抓住随机索引,但我相信长度总是为0,即使我有数据。

该功能如下所示:

App.ThoughtsController = Ember.ArrayController.extend({
  randomMessage: function() {
    var thoughts = this.get('model');
    var len = thoughts.get('length');
    var randomThought = (Math.floor(Math.random()*len));
    return thoughts.objectAt(randomThought);
  }.property('model')
});

1 个答案:

答案 0 :(得分:0)

您应该将length属性添加为另一个依赖于randomMessage计算属性的属性。这将允许内容已完成解析并具有length

randomMessage: function() {
  var len = this.get('length');
  var randomThought = (Math.floor(Math.random()*len));    
  return this.objectAt(randomThought);
}.property('model', 'length')

这是一个更新的jsbin