Классы ES2015 (или transpiled classes) - это просто синтаксический сахар над прототипным наследованием. Это означает, что методы, которые вы определяете, помещаются в прототип «класса». Чтобы иметь доступ к зависимостям, введенным в конструкторе, вам нужно как-то сохранить их для последующей ссылки методом прототипа.
Обычно это делается путем помещения их в экземпляр:
function HomeController($http) {
this.$http = $http;
}
HomeController.prototype.doMe = function() {
this.$http.get('http://www.yahoo.com/');
};
В синтаксисе на основе класса это означает:
class HomeController {
constructor($http) {
this.$http = $http;
}
doMe() {
this.$http.get('http://www.yahoo.com/');
}
}
EDIT: если вы используете TypeScript, вы можете сохранить некоторый шаблонный шаблон, используя модификаторы доступа в аргументах конструктора. Например:
class HomeController {
constructor(private $http) {}
}
... который является сокращением для:
class HomeController {
private $http;
contructor($http) {
this.$http = $http;
}
}
РЕДАКТИРОВАТЬ 2: Если вы хотите сделать ваш контроллер мини-дружественным, вы можете использовать один из вариантов, описанных здесь здесь (возможно, наряду с инструментом, подобным ngAnnotate ). Например, вы можете использовать метод «$inject
Property Annotation:
ES5
HomeController.$inject = ['$http'];
function HomeController($http) {...}
HomeController.prototype.doMe = function() {...}
ES2015
class HomeController {
constructor($http) {...}
doMe() {...}
}
HomeController.$inject = ['$http'];
// OR
class HomeController {
static get $inject() { return ['$http']; }
constructor($http) {...}
doMe() {...}
}
ТипScript
class HomeController {
static $inject = ['$http'];
constructor(private $http) {}
doMe() {...}
}
Наконец, мне удалось заставить его работать ... так что спасибо тем, кто дал мне комментарии:
df1$diff_order <- reorder(df1$country.name, df1$diff) #Set order of countries by diff, and then set this to be plot
a <- ggplot(df1, aes((x=diff_order), y=diff,fill=as.factor(level))) +
geom_bar(stat="identity") +
xlab("Country") +
theme_classic() +
coord_flip() +
scale_fill_manual(values=c("#009E73", "#0072B2"),name="NUTS level") +
ggtitle("All") +
theme(plot.title = element_text(hjust = 0)) +
theme(axis.title.x = element_blank()) +
theme(axis.text=element_text(size=9),
axis.title=element_text(size=10,face="bold"))
a