class loginCtrl {
constructor(http) {
[this.http, this.name] = [http, 'login'];
}
login() {
console.log(this.http);
console.log(this.name);
}
}
loginCtrl.$inject = ['http'];
let a = new loginCtrl();
a.login();
这样调用之后http是undefined,但是通过点击事件,即可以打印出来。
这是怎么回事,注入http那里用的是angular的。
http代码如下:
class http {
constructor($http) {
this.$http = $http;
this.options = {
headers: {
'Content-type': 'application/json;charset=utf-8',
'accessToken': 2332
}
}
}
get(data, url, cb) {
let gets = {method: 'GET', params: data, url: url}
Object.assign(gets, this.options)
this.$http(gets).then(function (data) {
console.log('success');
cb(data);
})
}
}
http.$inject = ['$http'];
export default angular.module('http', [])
.service('http', http)
.name;
let a = new loginCtrl(http)
你没有给http到constructor