javascript - 具有隔离范围的 AngularJS 指令 : passing params in a function

标签 javascript angularjs angularjs-scope

我想在范围选项中使用 &attr 以便向外部 Controller 公开 API。

这是我目前使用的方式:example

问题是我只能在对象内部传递参数,这会强制函数绑定(bind)具有一个特定的键(在链接示例中,hideDialog(test)内的test询问 code> 是因为我需要它作为调用 close({'test':'Letho'})) 的关键。

有什么办法可以在绑定(bind)时省略按键吗?这样我就可以直接使用:

<my-dialog ng-hide="dialogIsHidden" on-close="hideDialog">
  Check out the contents, {{name}}!
</my-dialog>

<a href class="close" ng-click="close('Letho')">&times;</a>

谢谢。

最佳答案

指令用法:

<my-dialog ng-hide="dialogIsHidden" on-close="hideDialog">

指令:

scope: {
  'onClose': '&'
},
templateUrl: 'my-dialog-close.html',
link: function (scope) {

  scope.close = function (value) {
    var expressionHandler = scope.onClose();
    expressionHandler(value);
  };
}

指令模板:

<a href class="close" ng-click="close('Letho')">&times;</a>

演示: http://plnkr.co/edit/2pxIHoTAP1OeAhmhA9ow?p=preview

关于javascript - 具有隔离范围的 AngularJS 指令 : passing params in a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24054946/

相关文章:

javascript - 从 AngularJS 中的服务内部访问 $scope 属性

javascript - angular ng-show/ng-hide 不能与 ng-bind-html 一起正常工作

javascript - JSON 文件中所有进程的 PM2 通用设置

javascript - 如何覆盖 JavaScript 中的 location.assign 或 location.replace 函数?

javascript - 如何让我的 Discord 机器人发送欢迎消息?

angularjs - Angular 注入(inject)语法背后的想法是什么?

javascript - AngularJS - 覆盖指令的编译函数不调用链接函数?

javascript - 未动态添加的项目列表

javascript - React(来自 Facebook 的应用程序框架)和react.js(JS 的响应式(Reactive)扩展)之间有什么区别/相似之处?

css - 按钮中的文本 (CSS)