AngularJs指令配置參數scope詳解

來源:互聯網
上載者:User

標籤:getname   多個   log   function   img   rip   var   cli   put   

AngularJs最重要也是最難理解的模組之一就是它的指令(directive)了,自訂指令配置有很多個參數,下面我只說說其中scope的配置極其含義。

scope表示指令的範圍,它有三個可選值:true、false、對象{}。

.directive("myDirective", function(){        return {            restrict: "EA",            scope: true/false/{},            template: "<div>{{content}}</div>"        }})

true:繼承父範圍且建立獨立範圍;

false:繼承父範圍;

{}:不繼承父範圍且建立獨立範圍;

 

 

當scope為非Null 物件時,父域和子域可以以指定的方式傳遞指定的資料,這就是指令與指令之間的互動。

資料傳遞也分三種方式:@、=、&,先看demo

 

<div ng-app="myModule">    <h3>請分別修改父、子範圍表單裡的值</h3>    <div ng-controller="myController">        父範圍:<br/>        <input type="text" ng-model="name" /><br/>        <input type="text" ng-model="sex" /><br/>        <input type="button" ng-click="say()" value="點擊執行父域的say方法" /><br/>        子範圍:<br/>        <my-directive my-name="{{name}}" my-sex="sex" get-name=‘say()‘></my-directive><br/>    </div></div><script type="text/javascript">    var myModule = angular.module("myModule", []);    myModule.controller("myController", [‘$scope‘, function($scope){        $scope.name = "wangmeijian";        $scope.sex = "boy";        $scope.say = function(){            alert( $scope.name +" is a"+ $scope.sex )        }    }])    myModule.directive("myDirective", function(){        return {            restrict: "EA",            scope: {                myName: "@",                mySex: "=",                getName: "&"            },            template: "<input type=‘text‘ ng-model=‘myName‘ /><br/>"+                      "<input type=‘text‘ ng-model=‘mySex‘ /><br/>"+                      "<input type=‘button‘ ng-click=‘getName()‘ value=‘點擊執行子域的say方法‘ />"        }    })</script>

@:單向引用父域的值,傳遞的值必須是字串且在指令裡引用時必須加上{{}};

=:雙向繫結子域和父域;

&:單向綁定父域,以便在其中運行函數

總結:scope是指令與指令之間互動,範圍之間資料互連的重要途徑,是很常用也很重要的基礎知識,務必要掌握。

AngularJs指令配置參數scope詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.