この点で私を助けてください。
「& バインディング」を使用した角度のある 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」を返します。