コールバックを属性として受け入れるディレクティブを作成しました。例:
<my-directive callback-expression="someFunction()"> </my-directive>
ディレクティブは再利用可能であるため、isolate スコープを指定しました。callback-expression
その属性が設定されているかどうかに基づいて、ディレクティブ内にボタンを表示したい。
App.directive('myDirective', function(){
restrict: 'E',
scope: {
callbackExpression: '&'
},
template: '<button ng-show="!!callbackExpression">Fire callback</button>'
});
問題は、式が空であっても関数であることです。
console.log($scope.callbackExpression)
属性を空白にすると、次のようになります。
function (locals) {
return parentGet(parentScope, locals);
}
私の現在の解決策は、リンク関数の先頭に次の行を配置することです。
if (attributes.callbackExpression) scope.callbackButton = true
次にng-show
_callbackButton
その余分な行とスコープのプロパティを必要としない代替手段はありますか?