私はJavascriptとAnuglarJSの新機能ですが、私はJavaの経験があります。私はAngularJS developer's guide on directiveを勉強しており、質問があります。AngularJS - 指示文からコントローラにパラメータを渡す
「他の要素をラップするディレクティブを作成する」セクションには、example/demoがあります。例/デモでは:
ディレクティブmyDialogのテンプレートが怒鳴るようです:
<div class="alert">
<a href class="close" ng-click="close({message: 'closing for now'})">×</a>
<div ng-transclude></div>
</div>
私はここにclose({message: 'closing for now'})
を理解することはできません。ディレクティブの定義から:
scope: {
'close': '&onClose'
}
のでclose
は、ディレクティブの親でonClose
への参照です。 onClose
は、コントローラで定義されているが、それには属性としてテンプレートだとさらにhideDialog(message)
を参照して表示されていません。
<div ng-controller="Controller">
{{message}}
<my-dialog ng-hide="dialogIsHidden" on-close="hideDialog(message)">
Check out the contents, {{name}}!
</my-dialog>
</div>
質問:onClose
以来
- が具体的に、コントローラで定義されていない、どのようにそれを取ることができますディレクティブから渡された入力パラメータを処理しますか?
- コントローラ内の
hideDialog
は文字列パラメータを受け取りますが、指令のclose
はオブジェクト{message: 'closing for now'}
からonClose
を渡します。onClose
入力のmessage
キーから値を抽出し、それをターゲット関数hideDialog
に渡すという魔法はどうですか?