AngularJS - 将指令中的参数传递回控制器

时间:2017-10-02 15:01:06

标签: javascript angularjs

我是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'})">&times;</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>

问题:

  1. 由于onClose未在控制器中明确定义,如何处理和处理从指令传递的任何输入参数?
  2. 控制器中的
  3. hideDialog采用字符串参数,但指令中的close将对象{message: 'closing for now'}传递给onCloseonClose如何从输入的message键中提取值并将其传递给目标函数hideDialog

0 个答案:

没有答案