1

この点で私を助けてください。

「& バインディング」を使用した角度のある 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!
       }
    }
});

そして、「onSomething」が定義されているかどうかをテストしたいと思います。

実際、このように使用すると、次のようになります。

<foo message='my message' on-something='doSomething()'></foo>

大丈夫。

しかし、このように使用すると:

<foo message='my message'></foo>

「onSomething」は定義すべきではありませんが、確認できません!

私は試した:

if (ctrl.onSomething) ...
if (ctrl.onSomething == undefined) ...
if (ctrl.onSomething == null) ...
if (angular.isDefined(ctrl.onSomething)

これらのテストはすべて、コールバックが渡されていない場合でも、常に「true」を返します。

4

1 に答える 1