2015-12-21 142 views
0

我试图访问元素事件内的指令的$范围。但是,这并没有发生。

当$元素模糊,股利,dyamically创建的,应该有一个称呼是因为纳克级

app.directive('advformInput', function($compile) { 
     return { 
      restrict: 'A', 
      link: function($scope, $element, $attrs) { 
       var div = angular.element('<div class="advform-input" ng-class="{isok:isok}">' + 
        '<div class="helper">' + $attrs.advformInput + '</div></div>'); 
       var e = $compile(div)($scope); 
       var par = $element.parent(); 

       $scope.isok = 0; 
       par.append(e); 

       $element.on('blur', function($event){ 
        var par = $(this).parents('.advform-input:first'); 

        par.removeClass('isfocused'); 

        if ($($event.target).val()) 
         par.addClass('hasval') 
        else 
         par.removeClass('hasval') 

        $scope.isok = 1; 
       }) 
       $element.on('focus', function($event){ 
        div.addClass('isfocused') 
       }); 

       e.append($element); 
      } 
     }; 
    }); 

回答

1

你只需要改变isok值后添加$scope.$digest()的“ISOK”级。

简短的解释是,角度是无知的,当一个jQuery事件触发,你必须告诉它,事情已经改变。