4

我正在使用一个示例 Ember 应用程序,该应用程序显示了存储在夹具中的所有数据,最后尝试显示夹具中的随机数据。

在这里完成演示: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')
});
4

1 回答 1

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

于 2013-07-24T16:49:38.550 回答