JSFiddle - React, Tailwind, and code Playground

by Raul Corona Xolaltenco

HTML

<div ng-app="myApp">
<div ng-controller="myCtrl">
    <h1>From parent: </h1>
    <h3>parentProp1: <input ng-model="parentProp1"></h3>
    <h3>parentProp2: <input ng-model="parentProp2"></h3>
    <h3>parentObj: <input ng-model="parentObj.x"></h3>    
    <div my-directive interpolated="{{parentProp1}}" twoway-binding="parentProp2" oneway-object="{{parentObj}}">
        <h1>From child: </h1>
        <h3>interpolatedProp: {{ interpolatedProp }}</h3>
        <h3>twowayBindingProp: {{ twowayBindingProp }}</h3>
        <h3>someIsolateProp: {{someIsolateProp}}</h3>
        <h3>onewayObject: {{ onewayObject }} </h3>
        <h1>Set from child:</h1> 
        interpolatedProp: <input ng-model="interpolatedProp"> <br>
        twowayBindingProp: <input ng-model="twowayBindingProp"> <br>
        onewayObject: <input ng-model="onewayObject.x"> <br>
    </div>
</div>
</div>

JavaScript

var app = angular.module('myApp', []);

app.controller("myCtrl", function($scope) {
    $scope.parentProp1 = 11;
    $scope.parentProp2 = 'Mark';
    $scope.parentObj = {'x': 1, 'y': 2};
}).directive("myDirective", function() {
    return {
        restrict: 'AE',
        scope: { 
            interpolatedProp: '@interpolated', 
            twowayBindingProp: '=twowayBinding',
            onewayObject: '@onewayObject',
        },
        link: function($scope, $elem, $attr) {
            $scope.someIsolateProp = "I'm isolated";
            console.log($scope.onewayObject);
            $attr.$observe('onewayObject', function(value) {
                console.log(value);
            });
        }
    }
});