I have a function inside my controller that adds a piece of HTML (an input) into the DOM.
var myApp = angular.module('myApp', []);
myApp.controller('appController', ['$scope',
  function($scope) {
    $scope.data = {};
    $scope.data.value = null;
    $scope.addHtml = function() {
      $('#section').html('<input type="checkbox" value="false" name="checkbox", ng-model="data.value">');
    }
    $scope.logData = function() {
      alert($scope.data.value);
    }
  }
]);<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<html ng-app="myApp">
<head>
</head>
<body ng-controller="appController">
  <div id="buttons">
    <button ng-click="addHtml()">Add HTML</button>
    <button ng-click="logData()">Alert Val</button>
  </div>
  <div id="section">
  </div>
</body>
</html>When I run $scope.addHtml(), it successfully adds the input into the #section div. However, the ng-model doesn't bind to the $scope.data.
What's a simple but effective way of binding this input value to the $scope.data after a DOM change?
