EDITING
FIELDS
USING X-EDITABLE IN ANGULARJS
Angular-xeditable
is
a bundle of AngularJS directives
that allows you to create editable
elements,which
is also known as click-to-edit
or
edit-in-place.In
this blog, I will be showing how to add x-editable in your
application
as shown below:
as shown below:
1)We
have to install X-editable using "bower
install angular-xeditable"
and
add below links in index.html:
<link href="bower_components/angular-xeditable/dist/css/xeditable.css" 
rel="stylesheet">
<script src="bower_components/angular-xeditable/dist/js/xeditable.js">
</script>
                                          (or)
You can also add cdnjs links for x-editable as shown below:
<link
href="https://cdnjs.cloudflare.com/ajax/libs/angular-xeditable/0.7.1/css/xeditable.css
"/>
<link
href="https://cdnjs.cloudflare.com/ajax/libs/angular-xeditable/0.7.1/css/xeditable.min.css
"/>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/angular-xeditable/0.7.1/js/xeditable.js
"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/angular-xeditable/0.7.1/js/xeditable.min.js
"></script>
2)
Add dependency in your App.js  as shown below:
var app = angular.module("app", ["xeditable"]);
3)
Set Bootstrap theme in app.run as shown below in App.js :
app.run(function(editableOptions) {
  editableOptions.theme = 'bs3'; // bootstrap3 theme. Can be also 'bs2', 'default'
});
4)
Below are the screenshots of how the screens look like:
a)  Before editing:
b)
If you don't want to edit the text-fields you can click on Save button as shown
below:
c)If you want to edit fields click on the pencil icon for editing as shown below:
d) After clicking on edit icon the page will be displayed as shown below:
e)
If you don't want to save the changes made in text-fields, click on the
cancel icon as shown below:
f)
If you want to save the changes made in the text-fields, click on Save as shown
below:
5) Html code for x-editable shown below:
 <form  editable-form name="editableForm3" ng-controller="MyController">
 <div style="margin-bottom: 10px" editable-text="user.displayName"
 e-label="Username:"><strong>User Name: </strong>
{{user.displayName|| 'empty'}}</div>
 <div style="margin-bottom: 10px" editable-text="user.FirstName"
 e-label="Firstname:" ><strong>First Name: </strong>
{{user.FirstName|| 'empty'}}</div>
 <div style="margin-bottom: 10px" editable-text="user.LastName" 
e-label="Lastname:"><strong>Last Name: </strong>
{{user.LastName|| 'empty'}}</div>
 <div style="margin-bottom: 10px" ><strong>Gender:</strong>
<p style="margin-top:-20px;margin-left:60px" type="radio" 
editable-radiolist="user.status" 
e-ng-options="s.value as s.text for s in ::statuses track by s.value">
{{showStatus()|| user.status }}</p></div>
 <div style="margin-bottom: 10px" editable-text="user.DOB" 
e-label="DOB:"><strong>DOB:</strong>{{user.DOB|| 'empty'}}</div>
 <div style="margin-bottom: 10px" editable-text="user.Address"  
e-label="Address:" ><strong>Address:</strong>{{user.Address|| 'empty'}}
</div>
 <div style="margin-bottom: 10px" editable-text="user.Phone" 
 id="number" e-pattern="\d{3}-\d{3}-\d{4}" e-title="xxx-xxx-xxxx"
 e-label="Phone Number:"><strong>Phone number:</strong>
{{user.Phone|| 'empty'}}</div>
 <br>
 <button type="submit" class="btn btn-success" 
ng-disabled="editableForm3.$waiting"
 ng-click="editableForm3.$save();updateProfile()">SAVE</button>
 <span class="glyphicon glyphicon-pencil pull-right"  
ng-click="editableForm3.$show()" ng-hide="editableForm3.$visible">
</span>
 <span ng-show="editableForm3.$visible">
 <span class="glyphicon glyphicon-remove pull-right"  
ng-disabled="editableForm3.$waiting" 
ng-click="editableForm3.$cancel()"></span>
 </span>
 </form>
6) Below
is the controller code for editing text and radio buttons :
app.controller('MyController', function($scope) {
 $scope.user = {
displayName: 'awesome user',
FirstName:'awesome',
LastName:'user',
status:'2',
DOB:'27-08-2016',
Address:'xyz',
Phone:'123-456-7890'
 };
// for radio list add the following code:
$scope.statuses = [
  {value:1 , text:'Male'},
  {value:2 , text:'Female'}
];
$scope.showStatus = function() {
  var selected = $filter('filter')($scope.statuses, {value: $scope.user.status});
  return ($scope.user.status && selected.length) ? selected[0].text : 'Not set';
};
});
7)
Add CSS code for radio buttons:
.editable-radiolist label {
  display: inline-block;
}
Thanks,
Lakshmi Alekhya Vaddi
alekhya4c4@gmail.com
MOURITECH PVT LTD.
www.mouritech.com






Comments
Post a Comment