Угловое выражение ничего не возвращает

0

Я делаю рандомизатор-веб-приложение, которое служит вам случайным числам. Но, очевидно, что-то не так. Соответствующая часть моего кода выглядит так:

.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 ответа

2
Лучший ответ

Попробуйте это

{{ rand.tilfeldig() }}

вместо

{{ rand.tilfeldig }}
  • 0
    Очевидно, я почти всегда совершаю эту ошибку.
0

Вы пытаетесь (Ответ Аника Ислама Абхи объясняет, как вы можете заставить его работать) использовать выражение, которое возвращает разные значения для одного и того же входа/состояния (из-за ваших Math.random()) и будет Math.random() ваши итерации дайджеста (просто проверьте свой консольный журнал после внесения изменения, предложенного Аником Исламом Абхи).

Правильный способ сделать то, что вы хотите, - либо нажать кнопку, которая вызывает функцию tilfeldig чтобы установить случайное значение переменной в области или в функции tilfeldig, проверьте текущие значения minimum, maksimum и desAntall и верните ранее вычисленный результат, если значения не изменились.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню