我是Angular.js的新手,我正在尝试通过FineUploader库对文件进行 AJAX 发布。我试图用其他代码修改我在 github 上找到的指令,但我似乎无法将返回值返回给模型。
我的 HTML 代码类似于
<div ng-controller="Analysis">
<div ng-model="analysis" fine-uploader upload-destination="upload" upload-extensions="model"></div>
</div>
使用简单的控制器
function Analysis($scope){
$scope.analysis = [];
}
然而,诀窍是指令
angular.module('cliniccio.directives', []).
directive('fineUploader', function() {
return {
restrict: 'A',
require: '?ngModel',
link: function($scope, element, attributes, ngModel) {
var uploader = new qq.FineUploader({
element: element[0],
request: {
endpoint: attributes.uploadDestination,
},
validation: {
allowedExtensions: attributes.uploadExtensions.split(',')
},
text: {
uploadButton: '<i class="icon-upload icon-white"></i> Upload File'
},
template: '<div class="qq-uploader">' +
'<pre class="qq-upload-drop-area"><span>{dragZoneText}</span></pre>' +
'<div class="qq-upload-button btn btn-info" style="width:auto;">{uploadButtonText}</div>' +
'<span class="qq-drop-processing"><span>{dropProcessingText}</span></span>' +
'<ul class="qq-upload-list" style="margin-top: 10px; text-align: center;"></ul>' +
'</div>',
classes: {
success: 'alert alert-success',
fail: 'alert alert-error'
},
callbacks: {
onComplete: function(id, fileName, responseJSON) {
console.log(ngModel);
ngModel.$modelValue.push(responseJSON);
}
}
});
}
}});
注意应该推送模型值的 onComplete 回调。但是调试输出
文件:{{分析 | json}}
仍然是空的。请注意,我已经验证服务器确实发回了预期的 json。似乎 ngModel 的名称未定义。
我尝试了各种组合,但我得出的结论是这可能不是正确的方法。