//宣告ng-app
var demoApp = angular.module("demoapp", []);
//ng-app底下掛載ng-controller
demoApp.controller("demoCtrl", function($scope) {
$scope.name = 'Ryan';
});
//ng-app底下掛載directive
demoApp.directive('scopetrueDirective', function() {
return {
restrict:'AE',
scope: true,
template: '<input type="text" ng-model="name"/>'
};
})
.directive('scopefalseDirective', function() {
return {
restrict:'AE',
scope: false,
template: '<input type="text" ng-model="name"/>'
};
})
.directive('scopeisolate1Directive', function() {
return {
restrict:'AE',
scope: {},
template: '<input type="text" ng-model="name"/>'
};
})
.directive('scopeisolate2Directive', function() {
return {
restrict:'AE',
scope: {
name: '='
},
template: '<input type="text" ng-model="name"/>'
};
})
.directive('scopeisolate3Directive', function() {
return {
restrict:'AE',
scope: {
name: '@'
},
template: '<input type="text" ng-model="name"/>'
};
})
;
<div ng-app="demoapp">
<div ng-controller="demoCtrl">
<h1>AngularJs directive scope Demo</h1>
<h3>資料:$scope.name = {{name}}</h3>
<h2>1.沒scope:false</h2>
<div scopefalse-directive></div>
<h2>2.有scope(繼承父scope):true</h2>
<div scopetrue-directive></div>
<h2>3.scope獨立:{}</h2>
<div scopeisolate1-directive></div>
<h2>4.scope雙向綁定:{=}</h2>
<div scopeisolate2-directive name="name"></div>
<h2>4.scope單向綁定:{@}</h2>
<div scopeisolate3-directive name='{{name}}' ></div>
</div>
</div>