我正在制作一个为您提供随机数的randomizer-web-app。但显然有些不对劲。我的代码的相关部分如下:
.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>
我真的很难理解什么是错的。如果有人能说出来,我将非常感激。
答案 0 :(得分:2)
试试这个
{{ rand.tilfeldig() }}
而不是
{{ rand.tilfeldig }}
答案 1 :(得分:0)
您正在尝试(Anik Islam Abhi的答案解释了如何使其工作)使用表达式为同一输入/状态返回不同的值(因为您的Math.random()
调用)并且将最大化您的摘要迭代(只需在Anik Islam Abhi建议的更改后检查您的控制台日志)。
执行所需操作的正确方法是使用一个调用tilfeldig
函数的按钮将随机值设置为作用域中的变量,或者在tilfeldig
函数内,检查minimum
,maksimum
和desAntall
的当前值,如果值未更改,则返回先前计算的结果。