2015-05-04 2 views
1

Очень специфический вопрос, но для повторного использования: я пытаюсь передать угловой обратный вызов в директиву javascript .... см. Ниже. (Попытка product.id через OnChange событие)Угловой обратный вызов в директиве «onchange»

$scope.fileNameChanged = function(folder, id){ 
 
     console.log(folder + " " + id); 
 
    }
<div ng-repeat="product in products"> 
 
    <form id="upload_form" enctype="multipart/form-data" method="post"> 
 
    <span class="btn btn-default btn-file"> 
 
     <span class="uploadButton">Choose...</span> 
 
     <input type="file" id="productsFile" onchange="angular.element(this).scope().fileNameChanged('products', product.id)" name="file"> 
 
    </span> 
 
    </form> 
 
</div>

Консоль просто показывает Uncaught ReferenceError: product is not defined, но я абсолютно знаю, что product.id определяется, я сделал {{product.id}} в пределах нг-повтора только для отображения текст и, похоже, просто отлично ....

Я не уверен, следует ли я использовать {{..}} в OnChange аргумента, поэтому я попытался просто {{product.id}} и получил Error: [$compile:nodomevents].

Я использую onchange, потому что ng-change не поддерживает ввод файлов или из того, что я прочитал.

Любые предложения будут абсолютно фантастическими, я специально не ищу, чтобы получить product.id через этот обратный вызов, но любое угловую переменную область действия ....

+0

Где эта форма? Это в области вашего контроллера или что-то вроде модального окна? – Culyx

+0

Форма находится в HTML-документе с использованием ng-view и маршрутизации для изменения контроллера для каждого представления. – Marshall

ответ

1

Извините ответить на мой собственный вопрос, но это моя самое правильную работу -вокруг!

Я использовал директиву Id элемента ....

<span class="uploadButton">Choose...</span> <input type="file" id="{{product.id}}" onchange="angular.element(this).scope().fileNameChanged('products', this.id)" name="file"> 

И получил его с помощью this.id, теперь в качестве реального решения прохождения угловой сферы через onchange="" я действительно не думаю, что это разумно, но в этом случае это то, что я бы не пропустил в качестве идентификатора элемента.

Я надеюсь, что это станет полезным для других людей.

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