Ich habe den folgenden Code:AngularJS Eingang onchange Ereignis controllerAs Datei
<input onchange="angular.element(this).scope().filesChanged(this)" fileInput="controlFormCtrl.formData.episodeFile">
Die ausgewählte Datei wird auf den Umfang weitergegeben werden, und wird in meinem Controller auf diese Weise zugänglich sein:
var thisScope = this;
var rootScope = $root;
var ctrlScope = $scope;
ctrlScope.filesChanged = function(elm) {
thisScope.file = elm.files[0];
}
elm.files hat folgende Daten:
lastModified: 1485109128000
lastModifiedDate: Sun Jan 22 2017 19:18:48 GMT+0100 (CET)
name:"border-image.png"
size:1353
type:"image/png"
webkitRelativePath:""
__proto__: File
Allerdings ist die thisScope.file
nicht s zu sein et.
Was kann ich tun, um das Problem zu beheben?
ctrlScope.file statt thisScope.file funktionieren würde, aber ich bin mit 'controllerAs', wie ich unter einander verschachtelt mehrere Controller haben. – Coder
Meine Vermutung wäre, dass Sie 'ctrlScope. $ Apply();' ausführen müssen, um zu wissen, dass 'thisScope' sich geändert hat. –
@RaphaelRafatpanah Guter Ruf, da "onchange" anstelle von "ng-change" verwendet werden muss (was für diese Art der Eingabe nicht unterstützt wird), hat Angular keinen $ Digest-Zyklus ausgeführt. –