Я переключился на использование ES6 (Babel) в своем новом проекте Angular. Классы ES6 не могут иметь переменных. Как мне установить переменную $ scope теперь?Как получить доступ к переменной сферы в угловом контроллере ES6?
Скажем, у меня есть простой контроллер:
class MainController {
constructor ($timeout, events) {
'ngInject';
this.textMaker = "Hello!" //Option #1
} // constructor
textMaker(){ //Option #2
return "Hello!";
}
}
export default MainController;
Мой HTML выглядит (контроллер aut0matically впрыскивается во время сборки, скажем):
<h1> {{textMaker}}</h1>
И Вариант № 1 и Вариант № 2 дону» похоже, работает. Я получаю пустой заголовок. Такая простая вещь ... что я делаю неправильно?
'this' будет работать только если вы определили' 'controllerAs' или как' для контроллера, на otherhand могли бы вы попробовать инъекционные' $ scope' и сделать что-то вроде этого 'this. $ scope.whatever' (я не уверен в этом) –
Я определил 'controllerAs' в моем файле ui-router. какова должна быть его ценность? И как это влияет на это? –
Похоже, что возникает недоразумение. Тот факт, что вы используете ES6, ничего не меняет. Вы используете '$ scope' так же, как вы используете его с ES5. ES6 «классы» - это просто синтаксический сахар (пока), а не новая особенность. – zeroflagL