我正在嘗試做一個基本函數,它每秒將變量'wood'加1。
在JavaScript中,一個簡單的
setInterval(function(){
wood++;
}, 1000);
會做的伎倆。
在轉角,我已經被證明
app.controller('RandomCtrl', function($interval){
this.wood = 0;
$interval(function(){
this.wood++;
}, 1000);
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script>
var app = angular.module('app', []);
app.controller('RandomCtrl', function($interval){
this.wood = 0;
$interval(function(){
this.wood++;
document.getElementById('p').innerHTML = this.wood;
}, 1000);
});
</script>
<div ng-app='app' ng-controller='RandomCtrl as rand'>
Wood: {{ rand.wood }}
<br><br>Wood's value straight from the $interval:<p id='p'></p>
So, the interval is fine, but the variable is undefined inside it, which is the whole point of me using this interval.
<br><br>Also, I want this.wood to hold the value, nothing else.
</div>
然而,上述因某種原因不能正常工作的代碼。
它把this.wood + 1爲 '男' 和this.wood爲 '未定義'
這裏的片段:
在您的角度示例中,此上下文有所不同。使用var self = this;在外部函數中,並在$ interval中使用self.wood ++。 PS這不是角度特定的JavaScript的基礎知識 – 2015-04-04 22:11:33
哇!謝謝!棒極了! – Tobsta 2015-04-05 00:15:22