我是Javascript和AnuglarJS的新手,但我有一些Java经验。我正在研究AngularJS developer's guide on directive,并有一个问题。
在"创建包含其他元素的指令"有一个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
?