У меня есть следующая (упрощенная) директива, и я хочу написать ее с помощью Typcript (еще не Angular 2.0).Компонент AngularJS - ngModelController с машинописным текстом
angular
.module('app.components')
.directive('list', List);
function List() {
return {
restrict: 'E',
templateUrl: 'modules/components/List/List.html',
controller: ListController,
controllerAs: 'vm',
require: ['ngModel', '?^form'],
bindToController: true,
link: LinkFunction,
scope: {
'id': '@',
'name': '@'
}
};
function LinkFunction(scope, element, attrs, controllers) {
var ngModelCtrl = controllers[0];
var formCtrl = controllers[1];
ngModelCtrl.$isEmpty = function(value) {
return !value || value.length === 0;
};
ngModelCtrl.$render = function() {
scope.vm.form = formCtrl;
scope.vm.model = ngModelCtrl;
scope.vm.selected = ngModelCtrl.$modelValue;
};
// ... more controller functions
}
})();
Теперь, как я могу вводить контроллеры в моем машинопись Код:
const template = require('./List.html');
export default class ListComponent{
static selector = 'list';
static definition: ng.IComponentOptions = {
template: template,
controller: ListComponent,
bindings: {
'id': '@',
'name': '@'
}
};
id;
name;
constructor(private controllers) { // <-- not working
'ngInject';
}
$onInit() {
let ngModelCtrl = this.controllers[0];
let formCtrl = this.controllers[1];
ngModelCtrl.$isEmpty = function(value) {
return !value || value.length === 0;
};
ngModelCtrl.$render = function() {
this.model = ngModelCtrl;
this.form = formCtrl;
this.selected = ngModelCtrl.$modelValue;
};
}
}
Надежда кто-то знает ответ или может дать мне подсказку, как достичь своей цели, потому что я искал в Интернете часов, но не нашел для этого решения.
THx за ответ, но я знаю, как писать angularjs с машинописи (Todd Мотто стилистический справочник), но я не знаю, как придать ngModelController в мой компонент (как в старом коде angularjs) – CodeNashor
Вам удалось ввести требуемые контроллеры? –