为什么我收到错误: $ ctrl未定义 来自下面的自定义指令?我确实在指令内的控制器中定义了$ ctrl。
var myapp = angular.module('plunker', []);
myapp.directive('userinfo', function() {
return{
restrict:'E',
template: 'User : <b>{{$ctrl.user.firstName}}</b> <b>{{$ctrl.user.lastName}}</b>',
scope:{
user: '='
},
bindToController:true,
controller:function(){
var $ctrl = this;
},
controllerAs:$ctrl
}
return directive;
});
myapp.controller("MyController", function() {
var $ctrl = this;
$ctrl.jakob = {};
$ctrl.jakob.firstName = "Jakob";
$ctrl.jakob.lastName = "Jenkov";
$ctrl.john = {};
$ctrl.john.firstName = "John";
$ctrl.john.lastName = "Doe";
});
答案 0 :(得分:3)
controllerAs
应该是字符串,但是您传递的是未定义的全局变量$ ctrl。试试这个:
controllerAs: '$ctrl'
如果有必要引用控制器或任何绑定的功能 从模板到控制器,您可以使用该选项 controllerAs将控制器的名称指定为别名。