为了账号安全,请及时绑定邮箱和手机立即绑定

自己对于=绑定的理解

把代码改动了下便于自己理解概念

<html ng-app='expanderModule'>
   <head>
      <meta http-equiv="content-type" content="text/html; charset=utf-8" />
      <link rel="stylesheet" type="text/css" href="ExpanderSimple.css"/>
      <script src="framework/angular-1.3.0.14/angular.js"></script>
      <script src="ExpanderSimple.js"></script>
   </head>
   <body>
      <div ng-controller='SomeController'>
         <h1>{{title}}</h1>
         <expander class='expander' title1='title'>
            {{text}}
         </expander>
      </div>
   </body>
</html>
 var expanderModule=angular.module('expanderModule', []);
expanderModule.directive('expander', function() {
   return {
      restrict : 'EA',
      replace : true,
      transclude : true,
      scope : {
         title1 : '='
      },
      template : '<div>'
             + '<div class="title" ng-click="toggle()">{{title1}}</div>'
             + '<div class="body" ng-show="showMe" ng-transclude></div>'
             + '</div>',
      link : function(scope, element, attrs) {
         scope.showMe = false;
         scope.toggle = function() {
            scope.showMe = !scope.showMe;
            scope.showMe ? scope.title1 = "点击收起" : scope.title1 = "点击展开";
         }
      }
   }
});
expanderModule.controller('SomeController',function($scope) {
    $scope.title = '点击展开';
   $scope.text = '这里是内部的内容。';
});

我的理解,=绑定更像是c里面的指针。传的是指向变量的地址。

缺省只写等号,应该是表示同名,这里的同名是指,指令里的属性名称,和独立scope对象里的属性名称相同。

和$scope的属性名无关。

template中的{{title1}}指的是独立scope中的title1。

正在回答

1 回答

值传递

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
AngularJS实战
  • 参与学习       205465    人
  • 解答问题       1158    个

一起学习AngularJS的基础教程,通过实例学习并学会AngularJS

进入课程

自己对于=绑定的理解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信