Angularjs 角度1.5部件检查'&;装订';是空的
请在这一点上帮助我 我有一个使用“&binding”的1.5角组件:Angularjs 角度1.5部件检查'&;装订';是空的,angularjs,angular-components,Angularjs,Angular Components,请在这一点上帮助我 我有一个使用“&binding”的1.5角组件: app.component('foo', { bindings: { message: '<' onSomething: '&' }, template:'<div>blah blah</div>', controller: function () { var ctrl = this; ctrl.myO
app.component('foo', {
bindings: {
message: '<'
onSomething: '&'
},
template:'<div>blah blah</div>',
controller: function () {
var ctrl = this;
ctrl.myOperation = function () {
ctrl.onSomething(); // <= look this!
}
}
});
所有这些测试总是返回“true”,即使回调没有通过。它们返回
true
,因为ctrl.onSomething
是一个钩子函数,用于启动组件实例中声明的回调。这将永远是真实的。相反,尝试将$attrs
注入控制器并进行空检查
function( $attrs ){
var ctrl = this;
ctrl.myOperation = function(){
if( $attrs.onSomething ){ .... }
}
}
它们返回
true
,因为ctrl.onSomething
是一个钩子函数,用于启动组件实例中声明的回调。这将永远是真实的。相反,尝试将$attrs
注入控制器并进行空检查
function( $attrs ){
var ctrl = this;
ctrl.myOperation = function(){
if( $attrs.onSomething ){ .... }
}
}
当某人研究一项技术太快时就会发生这种情况:我不知道$attr。非常感谢。两者之间有细微的差别。指令和组件,主要说明如何添加控制器以及何时添加控制器。因为组件中没有链接功能,他们为要注入的组件添加了$element和$attrs服务,以实现与指令链接功能相同的功能。当有人研究技术太快时会发生这种情况:我不知道$attr。非常感谢。两者之间有细微的差别。指令和组件,主要说明如何添加控制器以及何时添加控制器。因为组件中没有链接函数,他们为要注入的组件添加了$element和$attrs服务,以实现与指令的链接功能相同的功能。非常确定您可以将
'&
更改为'&?
,然后您将看到ctrl.onSomething==null
非常确定您可以将'&
更改为'&?
,然后您将看到ctrl.onSomething==null
if (ctrl.onSomething) ...
if (ctrl.onSomething == undefined) ...
if (ctrl.onSomething == null) ...
if (angular.isDefined(ctrl.onSomething)
function( $attrs ){
var ctrl = this;
ctrl.myOperation = function(){
if( $attrs.onSomething ){ .... }
}
}