Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"></script>
<script src="http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.3.0.js"></script>
<link href="http://twitter.github.io/bootstrap/assets/css/bootstrap.css" rel="stylesheet" type="text/css" />
<link href="http://twitter.github.io/bootstrap/assets/css/bootstrap-responsive.css" rel="stylesheet" type="text/css" />
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body ng-app="app" ng-controller="AppCtrl"> 
  <ul>
    <li ng-repeat="item in items">
      {{item}}
      <button class="btn btn-mini" 
              confirmation-dialog-header="Delete Item" 
              confirmation-dialog-action="deleteItem($index)">Delete</button>
    </li> 
  </ul>
</body>
</html>
 
app = angular.module('app', ['ui.bootstrap'])
app.controller 'AppCtrl', ['$scope', '$q', '$timeout', ($scope, $q, $timeout) ->
  $scope.items = ['Item 1', 'Item 2'] 
                           
  $scope.deleteItem = (index) ->                         
    defer = $q.defer()
    $timeout ->
      $scope.items.splice(index, 1)
      defer.resolve()
    , 1000
    defer.promise
]
app.directive 'confirmationDialogHeader', ['$compile', '$q', '$dialog', ($compile, $q, $dialog) ->
  restrict: 'A'
  scope:
    confirmationDialogAction: '@'
  link: (scope, element, attrs) ->       
    dialogTemplate = """
      <div> 
        <div class="modal-header">
          <h4>{{header}}</h4>
        </div>
        <div class="modal-body">
          Are you sure?
        </div>
        <div class="modal-footer">
          <button class="btn" ng-click="closeDialog()">
            Cancel
          </button>
          <button class="btn" ng-click="onConfirm()">
            Yes
          </button>
        </div>
      </div>
    """
    
    dialogController = ($scope, dialog) ->
      $scope.header = attrs.confirmationDialogHeader
      
      $scope.onConfirm = ->
        scope.$parent.$eval(scope.confirmationDialogAction).then ->
          dialog.close()
          
      $scope.closeDialog = ->
        dialog.close()
    
    dialog = $dialog.dialog
      keyboard: no
      backdropClick: no
      template: dialogTemplate
      controller: dialogController
    element.bind 'click', ->
      scope.$apply ->
        dialog.open()
]
    
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers