我嘗試學習angular1.6,在這個例子中,我不知道我犯了什麼錯誤。
假設在3秒鐘後在屏幕上和控制檯上打印消息變量中相同的文本,當我單擊「獲取消息」按鈕時。
(function() {
\t "use strict";
\t angular.module('myApp',[])
.component('myComponent', {
template: "<button ng-click='$ctrl.scheduleTask()'>Get Message</button><br><p>Message fetched: {{$ctrl.message}}</p>",
controller: function() {
self = this;
self.scheduleTask = function() {
setTimeout(function() {
self.$apply(function() {
self.message = 'Fetched after 3 seconds';
console.log('message = ' + self.message);
});
}, 3000);
};
}
})
})();
<!DOCTYPE html>
<html ng-app="myApp">
<head>
\t <meta charset="utf-8" />
\t <title></title>
</head>
<body>
\t <my-component></my-component>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script>
</html>
這是因爲你不使用$ scope。 $ apply可以在範圍上使用 – Groben