如何在自定义聚合物元素中使用ng-click?

时间:2014-07-21 22:08:49

标签: angularjs polymer

我可以使用AngularJS'在自定义Polymer元素中找到的元素上的ng-click指令?例如,在我的Angular控制器中,我在范围上定义了一个函数,当我在index.html中时,使用该函数就像ng-click="function_name();"一样简单:

angular.module('test', [])
  .controller('TestCtrl', function($scope) {
    $scope.function_name = function() { alert('test'); };
  });

我的HTML:

<html>
  <body ng-app="test">
    <div ng-controller="TestCtrl">
      <a ng-click="function_name();">Click Me</a>
    </div>
  </body>
</html>

但是,如果我想在聚合物元素中使用相同的函数,ng-click="function_name();"似乎什么都不做:

<link rel="import" href="/components/polymer/polymer.html">
<polymer-element name="simple-test">
  <div>
    <a ng-click="function_name();">Click Me</a>
  </div>
  <script>
    Polymer('simple-test', {});
  </script>
</polymer-element>

示例小提琴:http://jsfiddle.net/mcem7/

1 个答案:

答案 0 :(得分:2)

Polymer拥有自己的事件授权风格:

<link rel="import" href="/components/polymer/polymer.html">
<polymer-element name="simple-test">
<template>
  <div>
    <a on-click="{{aClick}}">Click Me</a>
  </div>
</template>
<script>
  Polymer('simple-test', {
    aClick: function(event) {
    }
  });
</script>
</polymer-element>

您可以on-<any event name>委派任意事件。