When use 'require', recommend to add some error check, for example:
class ChildCtrl { constructor(){ // Get prop from parent ctrl
if(this.parentCtrl){
this.childProp = this.parentCtrl.prop;
}
}
} app.directive('someDirective', () => { return { require: {
'parentCtrl': '?^^'
},
controller: ChildCtrl,
controllerAs: 'vm',
bindToController: true,
scope: {},
template: require('./child.tpl.html')
}
})
We add a if() to check whether this is parent controller, if it is then we continue do something, if not, just ignore. This can prevent if there is no parent controller, we won't get undefined error