*@* binds the local scope property to a *value of a DOM attribute*.
So if you want to fill the DOM attribute with a scope property, you'll have
to bind it yourself and it will work.
<div watch-man monitor="*{{variable}}*"></div>
Understood?
On Sun, Jul 26, 2015 at 4:09 AM, AI <[email protected]> wrote:
> Hi,
>
> I have a question on isolate scope in directive. Basically I want to watch
> a variable in controller. When it changes after 5 seconds I want to console
> log the change.
>
> My Controller:
> app.controller("TestCtrl", ['$scope', '$timeout', function($scope,
> $timeout) {
>
> $scope.variable = true;
> $timeout(function(){
> $scope.variable = false;
> }, 5000);
>
>
> }]);
>
> My Directive:
> app.directive("watchMan", function() {
> return {
> restrict: 'A',
> scope: {
> monitor: "=" //works
> //monitor: "@" does not work
>
> },
> link: function(scope, elem, attr){
> scope.$watch('monitor', function(newVal, oldVal){
> console.log('changed from '+newVal + ' to ' + oldVal);
> });
> }
> };
> });
>
> Usage in HMTL:
>
> <div ng-app="TestApp">
> <div ng-controller="TestCtrl">
> <div watch-man monitor="variable"></div>
> </div>
> </div>
>
>
> From what I learnt about directives using isolated scope, the '@' is used
> for reading a value from controller, but this does not work but thats what
> I'm doing here.
>
> Using bi-directional "=" works. Why is this the case?
>
> I have a working example here:
> https://jsbin.com/fogifaloro/1/edit?html,js,console
>
> Thanks.
>
> --
> You received this message because you are subscribed to the Google Groups
> "AngularJS" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/angular.
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.