EmberJS - 在对象数组中生成随机对象

时间:2014-12-04 06:00:26

标签: ember.js handlebars.js

我有一个按钮,点击它时会在我的Ember网站中加载一个新路径并返回一个对象数组。我想要做的是设置它,以便单击此按钮导致该模块中呈现的数组中的随机对象。这样,用户可以在每次点击时获得不同的结果。我不知道如何告诉它选择随机索引并在我的车把模板中渲染它。任何帮助,将不胜感激。我对Ember很新。

这是我正在加载的路线(但没有显示内容):

App.GenerateRoute = Ember.Route.extend({
    model: function(){
        return App.GENERATE;
    }
 });


App.GENERATE = [
    {
    id: 1,
    word: //word here,
    language: //language here',
    trans: //translation here'
    },
    {
    id: 2,
    word: //word here,
    language: //language here',
    trans: //translation here'
    },
    {
    id: 3,
    word: //word here,
    language: //language here',
    trans: //translation here'
    }
];

1 个答案:

答案 0 :(得分:2)

您可以使用把手来实现这一目标。 将模型传递给车把功能,然后使用一点javascript魔法,从数组中选择一个随机对象,然后渲染。

Ember.Handlebars.helper('randomize', function(myArray, options) {

  return myArray[Math.floor(Math.random() * myArray.length)].id;
});

你以这种方式调用辅助方法 -

{{ randomize model}}

Demo

每次刷新或点击route

时都会返回一个随机对象