Angular表达式没有返回任何内容

时间:2015-11-09 10:42:13

标签: javascript angularjs

我正在制作一个为您提供随机数的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>

我真的很难理解什么是错的。如果有人能说出来,我将非常感激。

2 个答案:

答案 0 :(得分:2)

试试这个

{{ rand.tilfeldig() }}

而不是

{{ rand.tilfeldig }}

答案 1 :(得分:0)

您正在尝试(Anik Islam Abhi的答案解释了如何使其工作)使用表达式为同一输入/状态返回不同的值(因为您的Math.random()调用)并且将最大化您的摘要迭代(只需在Anik Islam Abhi建议的更改后检查您的控制台日志)。

执行所需操作的正确方法是使用一个调用tilfeldig函数的按钮将随机值设置为作用域中的变量,或者在tilfeldig函数内,检查minimummaksimumdesAntall的当前值,如果值未更改,则返回先前计算的结果。