从指令中的事件范围内访问$范围
问题描述:
我试图访问元素事件内的指令的$范围。但是,这并没有发生。
当$元素模糊,股利,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);
}
};
});
答
你只需要改变isok
值后添加$scope.$digest()
的“ISOK”级。
简短的解释是,角度是无知的,当一个jQuery事件触发,你必须告诉它,事情已经改变。