Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度1.5部件检查'&;装订';是空的_Angularjs_Angular Components - Fatal编程技术网

Angularjs 角度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

请在这一点上帮助我

我有一个使用“&binding”的1.5角组件:

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 ){ .... }
    }
}