JSFiddle - React, Tailwind, and code Playground

by Santosh Giridhara

HTML

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-sanitize.min.js"></script>
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="http://vitalets.github.io/angular-xeditable/dist/js/xeditable.js"></script>
<link rel="stylesheet" href="http://vitalets.github.io/angular-xeditable/dist/css/xeditable.css">
<script src="https://vitalets.github.io/angular-xeditable/bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script>
<h4>Angular-xeditable Select local (Bootstrap 3)</h4>
<!-- <div ng-app="app" ng-controller="Ctrl">
  <a href="#" editable-select="user.status" e-ng-options="s.value as s.text for s in statuses" onbeforesave="validateMe($data)">
    {{ showStatus() }}
  </a>
</div>
 -->

<div ng-app="app" ng-controller="Ctrl" id="UiPopoverCtrl">
  <div class="ui-popover-wrapper">
    <a href="#" 
       id="simpleText"
       editable-select="user.status" e-ng-options="s.value as s.text for s in statuses" onbeforesave="validateMe($data)"
       e-label="User Name"
       uib-popover-template="'popover.html'"
       popover-is-open="popoverIsOpen"
       popover-append-to-body="true"
       onshow="popoverIsOpen = !popoverIsOpen" 
       onhide="popoverIsOpen = !popoverIsOpen"
       popover="true">{{showStatus()}}</a>
  </div>
</div>

CSS

div[ng-app] { margin: 50px; }

JavaScript

var app = angular.module("app", ["xeditable","ui.bootstrap"]);

app.run(function(editableOptions) {
  editableOptions.theme = 'bs3';
});

app.controller('Ctrl', function($scope, $filter) {
  $scope.user = {
    status: 0
  }; 

  $scope.statuses = [
    {value: 1, text: 'status1'},
    {value: 2, text: 'status2'},
    {value: 3, text: 'status3'},
    {value: 4, text: 'status4'}
  ]; 
  
  $scope.validateMe = function(data){
  console.log(data);
  	if(data === 0){
    	return 'Not Set dd value';
    }
  };

  $scope.showStatus = function() {
    var selected = $filter('filter')($scope.statuses, {value: $scope.user.status});
    return ($scope.user.status && selected.length) ? selected[0].text : 'Not set';
  };
});