AngularJS Directive Scope : true
Weird behavior of Directive Scope when set to true
by Suman Kumar
HTML
<div ng-app="schoolApp">
<div ng-controller="schoolCtrl">
<h2 ng-click="reverseSchoolName()">{{schoolName}}, Click me to reverse school name</h2>
<h2>Student Name : {{student.firstName}} {{student.lastName}}<br>
Student Contact Num : {{student.mobileNum}}
</h2>
<div>Edit in parent :
<input type='text' ng-model='student.firstName'>
<input type='text' ng-model='student.lastName'>
</div>
<div my-directive class='directive'></div>
</div>
</div>
CSS
h2 {
cursor: pointer;
}
.directive {
border: 5px solid #F5BF6E;
;
padding: 10px;
}
JavaScript
var app = angular.module("schoolApp", []);
app.controller("schoolCtrl", function($scope) {
$scope.schoolName = 'Oxford Academy';
$scope.reverseSchoolName = function() {
$scope.schoolName = $scope.schoolName.split('').reverse().join('');
};
$scope.student = {
firstName: 'Chris',
lastName: 'Johnson',
mobileNum: 123456
}
});
app.directive("myDirective", function() {
return {
restrict: "EA",
scope: true,
template: "<strong>Inside Directive Scope</strong>" +
"<div>School Name is : {{schoolName}}</div>" +
"Change School name : <input type='text' ng-model='schoolName' />" +
"<br><br>" +
"<div> Student Details :</div>" +
"Student Name : {{student.firstName}} {{student.lastName}}<br>" +
"Student Contact Num : {{student.mobileNum}}" +
"<br><br>" +
"Change Student First Name : <input type='text' ng-model='student.firstName'/><br>" +
"Change Student Last Name : <input type='text' ng-model='student.lastName'/><br>" +
"Change Student Contact Number : <input type='text' ng-model='student.mobileNum'/>"
};
});