Angular 2-way binding
2-way skips a cycle of digest
HTML
<div ng-app="myApp" ng-controller="Ctrl1">
<my-element types="list" result='ctrlModel'></my-element>
</div>
JavaScript
function Ctrl1($scope) {
$scope.list = [{
id: 1,
name: 'Name 1'
}, {
id: 2,
name: 'Name 2'
}, {
id: 3,
name: 'Name 3'
}];
$scope.ctrlModel = {
selected: -1
}
 $scope.result = 10;
}
angular.module('myApp', []).directive('myElement', function() {
return {
restrict: 'E',
scope: {
'types': '=',
'result': '='
},
template: '<div ng-repeat="type in types" ><input type="radio" id={{type.id}} ng-model="result.selected" ng-value="type.id" >{{type.name}}</div> Result {{result.selected}}',
link: function(scope, iElement, iAttrs) {
console.log(scope.result)
}
}
});