Я делаю рандомизатор-веб-приложение, которое служит вам случайным числам. Но, очевидно, что-то не так. Соответствующая часть моего кода выглядит так:
.controller('randController', function() {
this.minimum = null;
this.maksimum = null;
this.desAntall = null;
this.visDes = false;
this.setDes = function (x) {
this.visDes = x;
};
this.checkDes = function (x) {
return this.visDes === x;
};
this.tilfeldig = function () {
return (Math.round((Math.random()*this.maksimum + this.minimum)*this.desAntall)/this.desAntall);
};
})
<div class="content kalkulator" id="expocalc">
<section ng-controller="randController as rand">
<ul class="nav nav-pills">
<li>
<a href="" ng-click="rand.setDes(false)" ng-class="{active:rand.visDes===false}">Hele tall</a>
</li>
<li>
<a href="" ng-click="rand.setDes(true)" ng-class="{active:rand.visDes===true}">Desimaltall</a>
</li>
</ul>
<input ng-model="rand.minimum" type="number" placeholder="Minste tall"><br>
<div class="tiny"></div>
<input ng-model="rand.maksimum" type="number" placeholder="Største tall"><br>
<div class="tiny"></div>
<input ng-show="rand.checkDes(true)" ng-model="rand.desAntall" type="number" placeholder="Antall desimaler"><br>
<pre>Tilfeldig tall = {{rand.tilfeldig}}</pre>
</section>
<a name="help"></a>
</div>
Я действительно пытаюсь понять, что случилось. Я был бы очень благодарен, если бы кто-то мог сказать.
Попробуйте это
{{ rand.tilfeldig() }}
вместо
{{ rand.tilfeldig }}
Вы пытаетесь (Ответ Аника Ислама Абхи объясняет, как вы можете заставить его работать) использовать выражение, которое возвращает разные значения для одного и того же входа/состояния (из-за ваших Math.random()
) и будет Math.random()
ваши итерации дайджеста (просто проверьте свой консольный журнал после внесения изменения, предложенного Аником Исламом Абхи).
Правильный способ сделать то, что вы хотите, - либо нажать кнопку, которая вызывает функцию tilfeldig
чтобы установить случайное значение переменной в области или в функции tilfeldig
, проверьте текущие значения minimum
, maksimum
и desAntall
и верните ранее вычисленный результат, если значения не изменились.