使用函数绑定'&'将值从一个指令传递到另一个指令

时间:2016-11-24 20:23:32

标签: javascript html angularjs angularjs-directive

我想将父指令中的值传递给child指令。在这种情况下,父指令有一个函数,需要在点击子指令的div上执行,并将子指令中的ng-model值传递给父指令的调用函数。

http://jsfiddle.net/Lvc0u55v/12543/

var myApp = angular.module('myApp', []);
myApp.directive('parentDirective', function() {
  return {
    restrict: 'EA',
    transclude: true,
    template: '<div>Parent directive</div>',
    link: function(scope) {
      scope.someFunc = function(value) {
        alert(value);
      }
    }
  }
});
myApp.directive('childDirective', function() {
  return {
    restrict: 'EA',
    template: '<input type="text" ng-model="data.name"><button ng-click="issue(data.name)">Child Directive</button>',
    scope: {
      issue: '&'
    }
  }
});
<div ng-app="myApp">
  <parent-directive ng-transclude>
    <child-directive issue="someFunc()"></child-directive>
  </parent-directive>
</div>

JSfiddle link

1 个答案:

答案 0 :(得分:0)

我已使用正确的解决方案更新了您的JSFiddle

在父指令中绑定函数时需要指定参数。

<child-directive issue="someFunc(value)"></child-directive>

并将带有这些参数的对象作为子指令中的键传递。

<button ng-click="issue({ value: data.name })">Child Directive</button>