2013-03-20 2 views
1

У меня есть файл, который мне нравится для моего интерфейса, написанного в jQuery. Он связан с моим файлом в действии изменения. Действие изменения показывает отличный просмотр и другие интересные вещи. Он также проверяет, находится ли mime-тип в моем списке допустимых типов mime.

Кроме того, у меня есть angularJS и его мониторинг моей формы, и я написал несколько директив, которые выполняют все мои проверки. Я попытался написать подтверждение для поля ввода файла, но по какой-то причине он никогда не запускается. Выполнение некоторых поисковых запросов предполагает, что его, поскольку угловой не поддерживает тип ввода файла.

Поэтому я добавил следующий код непосредственно в мое действие изменений JQuery:

angular.element(myinput).scope().$apply(function(scope){ 
     scope.project.avatar.$setValidity('image',false); 
    }); 

Я могу видеть, что действительность правильно получать значение ЛОЖЬ в отладчике, но действие нг-класс, который у меня есть, не посмотрев. Поэтому вне этого у меня есть следующий тег:

<div ng-class="{error: project.avatar.$invalid}">You did it wrong</div> 

Этот класс не добавляется.

Из Angular docs выяснилось, что $ apply должен был заставить обновить модель, чтобы все закончилось в синхронизации. Это явно не происходит, но я не уверен, что я делаю неправильно. Googling нашел меня много примеров того, как вызвать jQuery изнутри Angular, но очень мало информации о том, как вызвать Angular из jQuery. Любые советы будут высоко ценится!

+0

Вы можете проверить '

You did it wrong {{project.avatar.$invalid}}
' –

+0

Это, кажется, работает нормально для меня http://jsfiddle.net/arunpjohny/8UaML/1/ –

ответ

0

вы можете попробовать на код ниже

<div ng-class="{error: project.avatar.image}">You did it wrong</div> 

Здесь validationErrorKey является image, поэтому $error объект входного файла типа будет ключ называется image, который будет true или false на основе того, что вы установили после проверки.

0

Что вы могли бы искать в

Markup

<div ng-show="project.avatar.$invalid">You did it wrong</div> 

JS

var valid = some logic; 
    angular.element(this).scope().$apply(function(scope){ 
     scope.project.avatar.$setValidity('image', valid); 
    }); 

Демо: Fiddle

Смежные вопросы