我无法理解角度组件的范围。如果我做这样的事情:
function myComponent(){
this.data = 'Hello World';
}
let myModule = angular.module('myModule', []);
myModule.component('myComponent', {
template: `<div>{{$ctrl.data}}</div>`,
controller: myComponent
});
<script data-require="angularjs@1.5.8" data-semver="1.5.8" src="https://opensource.keycdn.com/angularjs/1.5.8/angular.min.js"></script>
<div ng-app="myModule">
<my-component></my-component>
</div>
它打印得很好......现在,如果我做一个小的修改并使它异步:
function myComponent(){
Promise.resolve().then(_ => {
this.data = 'Hello World';
});
}
let myModule = angular.module('myModule', []);
myModule.component('myComponent', {
template: `<div>{{$ctrl.data}}</div>`,
controller: myComponent
});
<script data-require="angularjs@1.5.8" data-semver="1.5.8" src="https://opensource.keycdn.com/angularjs/1.5.8/angular.min.js"></script>
<div ng-app="myModule">
<my-component></my-component>
</div>
它不打印任何东西。我可以使用单击处理程序更改该值,但是对于 http 和其他异步操作,它不起作用。