javascript - 具有隔离范围的 Angular 自定义指令不触发 ng-click 功能

标签 javascript angularjs

我有以下 Angular 自定义指令代码:

模板 (ReviewStandards.html)

<div class="review-standard" ng-repeat="standard in standards">
    <button ng-click="mark(standard)">Mark Complete</button>
</div>

JS

app.directive("reviewStandards", function ($parse, $state) {
return {
    restrict: "A",
    templateUrl: function (elements, attrs) {
        return "/Scripts/App/Directives/Templates/ReviewStandards.html";
    },
    transclude: false,
    scope: {
        standards: "="
    },
    replace: true,
    link: function (scope, elem, attrs) {

        scope.mark = function (standard) {
            alert();
        };
    }
  };
});

该指令用作:

<div review-standards standards="review.ReviewStandards"></div>

standards 只是 standard 对象的 JSON 数组。

问题是单击按钮时 ng-click 没有触发函数。作用域是孤立的 - 这是与此有关还是与按钮位于 ng-repeat 中有关?

最佳答案

Try This, "i just remove the Replace from your codes"

var app = angular.module("app", []);

app.controller("ctrl", function($scope) {

  $scope.data = [{
      name: "a"
    },
    {
      name: "b"
    }
  ];


});

app.directive("reviewStandards", function() {
  var template = "<div class=\"review-standard\">" +
     "<div ng-repeat=\"standard in standards\">" +
      "{{standard.name}} " +
      "<button ng-click=\"mark(standard)\">Mark Complete</button>" +
     "<div><hr>" +
    "</div>";
  return {
    restrict: "A",
    transclude: false,
    template: template,
    scope: {
      standards: "="
    },
    link: function(scope, elem, attrs) {

      scope.mark = function(standard) {
        console.log(standard)
      };
    }
  };
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
  <div review-standards standards="data"></div>
</div>

关于javascript - 具有隔离范围的 Angular 自定义指令不触发 ng-click 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37937280/

相关文章:

javascript - 输入值返回 NaN

javascript - 模板驱动的“起始日期”和“截止日期”表单验证

angularjs - ng-show/ng-if 不会立即更新 dom 高度

javascript - Pushwoosh Angular 简单 POST 请求返回 400

javascript - 如何计算 Excel 表格中数据的行数

javascript - 通过 Angular 从 Firebase 托管获取 JSONP 文件

javascript - 将 Angular 1 转换为 Angular 2 ngInit 函数

javascript - 同时添加两个元素

javascript - for 循环中的异步函数运行速度太慢。我怎样才能提高性能?

javascript - Safari 中 Express 服务器响应数据中的 HTTP header