javascript - 如何在 AngularJS 中为函数计时

标签 javascript css angularjs

我的代码如下:

HTML

<section ng-controller="randController as rand">
      Skriv inn minimumtall:<br>
      <input ng-model="rand.minimum" type="number" placeholder="Minste tall"><br>
      <div class="tiny"></div>
      Skriv inn makstall:<br>
      <input ng-model="rand.maksimum" type="number" placeholder="Største tall"><br><br>
      <ul class="nav nav-pills" ng-controller="clickController as click">
          <li ng-click="click.randClick()" ng-class="{'active' : click.randCheck(true)}" >
              <a ng-click="rand.tilfeldig()">Randomize!</a>
          </li>
      </ul>
      <div class="tiny"></div><br>
      <pre>Tilfeldig tall = {{rand.tilfeldig()}}</pre>
</section>

JS

.controller('clickController', function ($timeout) {
  this.randClicked = false;
  this.randClick = function () {
    this.randClicked = true;
    $timeout(function() {
        this.randClicked = false;
    }, 1000, true);
  };
  this.randCheck = function (x) {
      return this.randClicked === x;
  };
})

我想做的是重置 <li> 的事件类- 大约 2 秒后的元素(点击 2 秒后取消点击)。我已经从论坛成员那里得到了提示,但它仍然不起作用。目前,我得到 this error ,我不明白。

最佳答案

您的代码中的this 指针有问题。试试这个:

.controller('clickController', function ($timeout) {
  var that = this;
  this.randClicked = false;
  this.randClick = function () {
    this.randClicked = true;
    $timeout(function() {
        that.randClicked = false;
    }, 1000, true);
  };
  this.randCheck = function (x) {
      return this.randClicked === x;
  };
})

关于javascript - 如何在 AngularJS 中为函数计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33615525/

相关文章:

javascript - 为什么在 setInterval 循环之外找不到这个函数? (javascript)

JQuery - 当类绑定(bind)到 id 时 addClass

jquery - ul li 在 IE 浏览器上点击后退按钮时出现背景图像问题

AngularJS - 从返回 promise 的服务中取消 HTTP 请求

javascript - AngularJS 只显示属于子数组

javascript - Chrome 和 Firefox 未加载 bootstrap.min.css

javascript - 如何将不同文件夹中的多个 Javascript 文件合并到一个文件中?

html - slider 图像和背景重复?

angularjs - 在firestore和goods实践中插入封装对象

javascript - 如何获取 AngularJS 中选定单选按钮的值?