无法在AngularJS 1.5组件中要求指令

无法在AngularJS 1.5组件中要求指令,angularjs,angularjs-1.5,Angularjs,Angularjs 1.5,我已经创建了一个指令,它工作得非常好。现在,在将angular转换为1.5.0之后,我认为该指令是使用新的.component()符号编写的典型示例 由于某种原因,require属性似乎不再有效 以下是一个简化示例: angular.module('myApp',[]) .组件(“镜像”{ 模板:“{{$ctrl.modelValue}”, 要求:['ngModel'], 控制器:函数(){ var vm=这个; var ngModel=vm.ngModel; ngModel.$viewcha

我已经创建了一个指令,它工作得非常好。现在,在将
angular
转换为
1.5.0
之后,我认为该指令是使用新的
.component()
符号编写的典型示例

由于某种原因,
require
属性似乎不再有效

以下是一个简化示例:

angular.module('myApp',[])
.组件(“镜像”{
模板:“{{$ctrl.modelValue}

”, 要求:['ngModel'], 控制器:函数(){ var vm=这个; var ngModel=vm.ngModel; ngModel.$viewchangelisters.push(onChange); ngModel.$render=onChange; 函数onChange(){ vm.modelValue=ngModel.$modelValue; } } });
在Angular 1.5的组件语法中,在调用组件的
$onInit
生命周期方法之前,您无法访问所需的控制器。因此,您需要将您的初始化移到这里,这里是您的代码片段的工作版本,我在其中添加了
$onInit
函数

angular.module('myApp',[])
.组件(“镜像”{
模板:“{{$ctrl.modelValue}

”, 要求:{ ngModel:'ngModel', }, 控制器:函数(){ var vm=这个; vm.$onInit=函数(){ var ngModel=vm.ngModel; ngModel.$viewchangelisters.push(onChange); ngModel.$render=onChange; }; 函数onChange(){ vm.modelValue=vm.ngModel.$modelValue; } } });