Я обновляю приложение AngularJS, чтобы использовать синтаксис сильной стрелки для анонимных функций. Я знаю, что я need to use version 1.5, но некоторые вещи все еще не работают. Например, вот у меня есть пользовательская директива, которая проходит строку «привета» к его контроллеру, который затем выводит строку как предупреждение:Передача переменных области в контроллер AngularJS с использованием жирных стрелок
<div data-my-directive="hello">Text that will be replaced by my-template</div>
angular
.module('myModule')
.directive('myDirective',() => (
{
restrict: 'A',
templateUrl: 'my-template',
controller: 'myController',
controllerAs: 'myCtrl',
bindToController: true,
scope: {myVariable : '@myDirective'}
}))
.controller('myController',() => {
alert('the scope variable is: ' + this.myVariable);
}
Но это оповещение «переменная область видимости: не определены».
Если я изменю определение контроллера для использования синтаксиса ES5, он предупреждает, что «переменная области видимости: hello», как и ожидалось.
.controller('myController', function() {
alert('the scope variable is: ' + this.myVariable);
}
Я думаю, что это что-то делать с binding of this
.
Есть ли способ использовать обозначение жирной стрелки при передаче переменных сферы, как указано выше?
Пожалуйста, дайте мне знать, это работает или нет? –
@JMK Второй блок кода (без стрелки жира) - синтаксис ES5 –
Не толстый, просто стрелка. И это не синтаксис «анонимных функций». Функция стрелки - это особый тип функции. 'controller' ожидает функцию конструктора, которая никогда не может быть функцией стрелки. – zeroflagL