2016-11-01 6 views
0

Ich möchte eine zufällige Tabelle Daten erstellen, aber nur Zellen macht zufällig die Zeilen immer wiederholt. Hier ist mein Code:Wie erstellt man eine Tabelle mit zufälligen Daten in Ember.Js

Komponente/glut-app..js

import Ember from 'ember'; 

export default Ember.Component.extend({ 
    willRender: function() { 
    var tableRows = []; 
    var value = ['|', '-']; 
    var numRows = 20; 
    var numCells = 20; 
    for (var row = 1; row <= numRows; row++) { 
     for (var cell = 1; cell <= numCells; cell++) { 
     tableRows[row] = value[Math.round(Math.random())]; 
     } 
    } 

    this.set('rows', { 
     'tableRows': tableRows, 
    }); 

    } 
}); 

und Vorlagen/components/glut-app.hbs

<table> 
{{#each-in rows as |table tableRow|}} 
{{#each tableRow}} 
    <tr> 
     {{#each tableRow as |tableRows|}} 
     <td><button id="button_id"{{action "changeValue"}} value="{{tableRows}}">{{tableRows}}</button></td> 
     {{/each}} 
    </tr> 
    {{/each}} 
    {{/each-in}} 
</table> 
+0

Ist dieser Pfad 'templates/ember-app.hbs' korrekt? Ich glaube, es wäre 'templates/components/ember-app.hbs'. Sie können init-Hook zum Initialisieren von Daten verwenden. Was genau ist deine Frage? funktioniert dein Code nicht? – kumkanillam

+0

Ich korrigiere bereits den Patch. Nein, mein Code funktioniert, aber Daten sind nicht zufällig in Zeilen nur in Zellen – Erik

Antwort

0

Sie sind nicht verschiedene Zellen Werte für jeden zu schaffen Reihe,

Component.js

export default Ember.Component.extend({ 
    willRender: function() { 
    var tableRows = []; 
    var value = ['|', '-']; 
    var numRows = 20; 
    var numCells = 20; 
    for (var row = 1; row <= numRows; row++) { 
     var cellArr = [] 
     for (var cell = 1; cell <= numCells; cell++) { 
     console.log('Math.round(Math.random()) ',Math.round(Math.random())); 
     cellArr[cell] = value[Math.round(Math.random())]; 
     } 
     tableRows[row]=cellArr; 
    } 

    this.set('rows', { 
     'tableRows': tableRows, 
    }); 

    } 
}); 

in der Komponente hbs,

<table> 
{{#each-in rows as |table tableRow|}} 
{{log 'tableRow ' tableRow ' table ' table}} 
{{#each tableRow as |singleRow|}} 
    <tr> 
     {{#each singleRow as |tableRows|}} 
     <td><button id="button_id"{{action "changeValue"}} value="{{tableRows}}">{{tableRows}}</button></td> 
     {{/each}} 
    </tr> 
    {{/each}} 
    {{/each-in}} 
</table> 
{{yield}} 

Ich würde vorschlagen, Sie überlegen, Ember.Object und verwenden init init Daten einhaken. ember-twiddle

+0

Vielen Dank – Erik

+0

eine andere Anfrage Ich möchte überprüfen, ob alle Zellen die gleiche Warnung sind ("smth"); Wie kann ich das machen: Ich habe eine Funktion geschrieben, die Daten ändert: Hier ist Code. – Erik

+0

'Aktionen: { changeValue: function() { this. $(). On ('klicken', '.cellValue', Funktion (Ereignis) { if ($ (this) .text() == '| ') { $ (this) .text (' - '); } sonst if ($ (this) .text() ==' - ') { $ (this) .text (' | '); } else { } }); } } ' – Erik

Verwandte Themen