分離スコープを持つディレクティブによって (または内部で) 使用される関数を定義する方法を理解するのに苦労しています。$scope.foo()
次のコードで、関数が実行されないのはなぜですか? この問題に取り組むべき正しい方法はありますか? ユーザーがログインしている場合にのみ表示されるボタンを作成しようとしていますが、ディレクティブはその機能をカプセル化/分離するための良い方法になると考えていました。
<!DOCTYPE html>
<html>
<head>
<script src="https://code.angularjs.org/1.4.2/angular.js"></script>
<script>
angular.module('MyApp', [])
.directive('myScopedDirective', function() {
return {
scope: {}, // <!-- isolate scope breaks things
controller: function($scope) {
// isolate scope prevents this function from being executed
$scope.foo = function() {
alert('myScopedDirective / foo()');
};
}
};
});
</script>
</head>
<body>
<div ng-app="MyApp">
<!-- button doesn't work unless isolate scope is removed -->
<button my-scoped-directive ng-click="foo()">directive container - foo()</button>
</div>
</body>
</html>