AngularJS:模板添加的ng-click不会触发

时间:2014-10-24 23:22:03

标签: javascript angularjs

我在我的指令模板中动态添加了ng-click,但它似乎根本没有触发(或者已经由angular编译)。这是我的gist个文件。

虽然我对示波器有问题,但我认为当前问题与示波器无关。但请随意包括我目前的范围选项可能出现的任何问题。

我的HTML中有这个结构:

main element | MainCtrl
    | directive 1 | ss-pagination
        | directive 1.1 | ss-pagination-previous
        | directive 1.2 | ss-pagination-next

我有3条指令,1条是2条指令的父级,其模板中包含ng-click。原因是,我有一个主要的分页指令,其中包含设置|分页的功能。另外两个用作下一个|以前的按钮。

鉴于我目前正在重构,控制器代码样式似乎与指令不同。

1 个答案:

答案 0 :(得分:1)

我认为我发现了问题所在。将pagination-prev.directive.js更改为使用controllerAs,以便您可以从视图中调用控制器的功能goToPreviousPage,如下所示:

(function(angular, undefined) {
  function paginationPrevious() {
    return {
      restrict: 'EA',
      replace: true,
      transclude: true,
      require: '^ssPagination',
      template: getTemplate,
      controller: 'PaginationPreviousCtrl',
      controllerAs: 'prevCtrl'
    };

    function getTemplate(element, attrs) {
      return [
        '<div ng-transclude ',
        'ng-click="prevCtrl.goToPreviousPage()">',
        '</div>'
      ].join('');
    }
  }

  angular
    .module('app')
    .directive('ssPaginationPrevious', paginationPrevious);
})(angular);