2014-12-04 3 views
1

У меня есть кнопка, которая при нажатии загружает новый маршрут на моем сайте Ember и возвращает массив объектов. То, что я хотел бы сделать, это установить его так, чтобы эта кнопка нажата, приводит к случайному объекту в этом массиве, который отображается в шаблоне. Таким образом, каждый пользователь может получить другой результат. Я не уверен, как сказать ему, чтобы выбрать случайный индекс и сделать его в моем шаблоне рулей. Любая помощь будет оценена по достоинству. Я довольно новичок в Ember.EmberJS - генерировать случайный объект в массиве объектов

Это мой путь, который загружается (но не показывает содержание):

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' 
    } 
]; 
+0

вы хотите, чтобы выбрать случайный объект из массива и рендеринг в руле? или случайным образом перемешать массив и отобразить весь массив? – Ajey

ответ

2

Вы можете использовать рули для достижения этой цели. Передайте модель функции руля, а затем с помощью небольшой магии javascript, выберите случайный объект из массива и затем выполните рендеринг.

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

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

И вы называете вспомогательный метод в этом случае -

{{ randomize model}} 

Demo

Случайный объект возвращается каждый раз, когда вы обновить или ударить route

+0

потрясающий! Спасибо! – purcelllj

+0

добро пожаловать .. – Ajey

Смежные вопросы