Angular+JQ

by basarat

HTML

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
    <yo promise="promise"></yo>
    <yo interpolated="{{valFunc(val)}}" expression="valFunc(val)"></yo>
    <button ng-click="func()">click me</button>
</div>

JavaScript

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

function MyCtrl($scope,$q,$timeout){
    
    var defer = $q.defer(); 
    
    $scope.promise=defer.promise;
    
    $scope.func = function(){     
        defer.resolve("resolved value");
    }   
    
    $scope.val = 'asdf';
    $scope.valFunc = function (val){
        return 'val function : '+val;
    }
    
}

app.directive('yo',function($parse){
    return {
        restrict:'E',       
        link:function (scope,element,attrs){
            scope.$watch(attrs.promise,function(watchval){
                
                var parseval = $parse(attrs.promise)(scope);
                console.log(watchval,parseval);
            });            
            
            attrs.$observe('interpolated',function(value){
                console.log('interpolated value:',value);
            });
            
            scope.$watch(attrs.expression,function(value){
                console.log('expression value:',value);
            });
        }
    }
});