AngularJs 抓狂之:Angular的元素是驼峰命名法,但是HTML属性是用-分隔的,两者不一致!

今天试着用AngularJs写了点东西,感觉自己对isloated scope理解还是比较透彻的,但是写代码的时候却碰到一个问题,浪费了我1个小时的时间,最终找到原因,是。。。(见文末),先看代码:

可以在线运行:http://plnkr.co/edit/hzm9nG?p=preview

<!DOCTYPE html>
<html>

<head>
  <script data-require="angular.js@1.2.8" data-semver="1.2.8" src="http://code.angularjs.org/1.2.8/angular.js"></script>
  <script>
    var app = angular.module("badApp", []);
    app.controller("AppCtrl", function($scope) {
      $scope.toggleContent = function() {
        alert("OK")
      }
    })
     app.directive("collapseButton", function() {
      return {
        scope: {
          toggleContent: "&"
        },
        template: '<button ng-click="toggleContent()">Good</button>'
      }
    });
  </script>
</head>

<body>
  <div ng-app="badApp">
    <div ng-controller="AppCtrl">
      <div collapse-button="" toggleContent="toggleContent()"></div>
    </div>
  </div>
</body>

</html>









由于HTML的属性写错了,不应该写成驼峰命名法,而是应该全小写,然后用-相连!也就是

        <div collapse-button toggle-content="toggleContent()"></div>


原文地址:https://www.cnblogs.com/puncha/p/3876857.html