2015-12-21 196 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事件觸發,你必須告訴它,事情已經改變。