私は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