Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html ng-app='myApp'>
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body ng-controller='MainCtrl'>
  <br><br>
  <div data-my-question="" data-question="Question text?">
    <div data-yes="">
        YES!
    </div>
    <div data-no="">
        NO!
    </div>
  </div>
</body>
</html>
 
var app = angular.module('myApp', []);
app.controller('MainCtrl', function ($scope) {
  $scope.pizza = true;
  
});
app.directive('myQuestion', [
    function () {
        return {
            restrict: 'A',
            replace: true,
            scope: {
                question: '@'
            },
            transclude: true,
            controller: function($scope){
                console.log('myQuestion scope', $scope);
                $scope.answered = false;
                $scope.yesActive = false;
                $scope.activateYes = function (yesActive) {
                    $scope.answered = true;
                    $scope.yesActive = yesActive;
                };
            },
          link: function (scope) {
            //console.log('question scope', scope)
          },
            template:  '<div>' +
                '<div class="question-box" ng-class="{answered: answered}">' +
                '<div class="question">' +
                '{{question}}' +
                '</div>' +
                '<div class="buttons">' +
                '<a href="" class="btn btn-small" ng-click="activateYes(true)">Yes</a>' +
          '<a href="" class="btn btn-small" ng-click="activateYes(false)">No</a>' +
                '</div>' +
                '</div>' +
                '<div ng-transclude></div>' +
                '</div>'
            };
    }
])
.directive('yes', [
    function () {
        return {
            restrict: 'A',
            replace: true,
            transclude: true,
            template:   '<p ng-show="answered && yesActive" ng-transclude></p>',
            controller: function ($scope) {
              console.log('yes scope', $scope);
            }
        };
    }
])
.directive('no', [
    function () {
        return {
            restrict: 'A',
            replace: true,
            transclude: true,
            template:   '<p ng-show="answered && !yesActive" ng-transclude></p>',
            controller: function ($scope) {
              console.log('no scope', $scope);
            }
        };
    }
]);
Output

This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers