Очень специфический вопрос, но для повторного использования: я пытаюсь передать угловой обратный вызов в директиву 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 через этот обратный вызов, но любое угловую переменную область действия ....
Где эта форма? Это в области вашего контроллера или что-то вроде модального окна? – Culyx
Форма находится в HTML-документе с использованием ng-view и маршрутизации для изменения контроллера для каждого представления. – Marshall