Простой вопрос, как создать форму загрузки angularjs на Parse.com?
Я пытаюсь создать форму загрузки изображения профиля, используя этот qaru.site/questions/9543840/..., но он не работает
HTML-код
<div class="col-lg-9" ng-controller="manageProfile">
<form style="margin-top:80px">
<div class="form-group">
<label>Browse for Picture</label>
<input type="file" name="profPic" id="profPic"></input>
</div>
<button class="btn btn-md" ng-click="uploadPicture()">Upload Picture</button>
</form>
</div>
Код AngularJS
profile.controller('manageProfile', ['$scope', function($scope) {
$scope.uploadPicture = function() {
var fileUploadControl = $("#profPic")[0];
var file = fileUploadControl.file[0];
var name = file.name;
var parseFile = new Parse.File(name, file);
parseFile.save().then(function() {
var currentUser = Parse.User.current();
currentUser.set("profilePicture", parseFile);
currentUser.save();
}, function(error) {
alert("Error: " + error.code + ' ' + error.message);
});
}
Я получил эту ошибку при попытке загрузить
error: fileuploadcontrol is undefined
В AngularJS элементы ввода используют директиву ng-model
для привязки ввода к переменной области.
<div class="col-lg-9" ng-controller="manageProfile">
<form style="margin-top:80px">
<div class="form-group">
<label>Browse for Picture</label>
<!-- add ng-model directive -->
<input ng-model="fileName" type="file" name="profPic" id="profPic"></input>
</div>
<button class="btn btn-md" ng-click="uploadPicture()">Upload Picture</button>
</form>
</div>
В контроллере:
profile.controller('manageProfile', ['$scope', function($scope) {
$scope.uploadPicture = function() {
/* replace this
var fileUploadControl = $("#profPic")[0];
var file = fileUploadControl.file[0];
var name = file.name;
*/
//Use ng-model variable
var name = $scope.fileName;
//
};
}]);
Для получения дополнительной информации о ng-model
см. Справочник API Directua для ng-модели.
Error: this._source is undefined