我试图在元素事件中访问指令的$ scope。但是,它没有发生。
当$元素模糊时,div,dyamically创建的,应该有一个名为“isok”的类,因为ng-class
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);
}
};
});
答案 0 :(得分:1)
您只需在更改$scope.$digest()
的值后添加isok
。
简短的解释是,角度不知道jQuery事件何时触发,你必须告诉它事情发生了变化。