Ich habe einen Filter, der einen Zufallswert generieren:AngularJS halten einen temporären Wert in ng-Wiederholungsschleife
function randomize() {
return function (input) {
if (input !== null && input !== undefined && input > 1) {
return Math.floor((Math.random() * input) + 1);
}
};
}
Ich habe einen ng-repeat Block in meinem html:
<tr data-ng-repeat="config in Configs">
<td>
<img src="/images/{{21|randomize}}.png" alt="1">
</td>
<td>
<img src="/images/{{21|randomize}}.png" alt="2">
</td>
Aus was Sie sehen können, Bild im zweiten TD-Block könnte einen anderen Wert als der erste TD-Block haben, weil es eine neue Zufallszahl erzeugt.
Frage ist, wie kann ich die Zufallszahl aus dem ersten td-Block erzeugt und sie irgendwo wiederverwenden (zB zweiter td-Block) in der gleichen ng-repeat-Schleife?
Ich möchte es nur für die aktuelle Schleife halten.
Gibt es das überhaupt, ohne die $ scope und JS Datei zu berühren? Wenn nicht, was ist der einfachste Weg, dies zu tun?
, dass jede Schleife im ng-repeat hava den gleichen Wert –
Sorry, ich war falsch machen, wird es nicht. aber du musst ein Paar Klammern für 21 | randomize setzen. Bitte ändere deine Antwort auf ng-init = "rand1 = (21 | randomize)" –
@CaptainRib yup, vergiss die Parens. Ich habe trotzdem einen besseren Weg gefunden, der 'ng-init' vermeidet. – Phil