2015-03-19 4 views
0

У меня есть загрузка изображений на JavaScript, которые загружат изображение и дадут мне изображение src. Мне нужно сохранить это значение в моей FireBase DB для текущего создаваемого пользователя.AngularJS + Firebase Загрузить фото профиля

Я попытался вывести img.src на скрытый ввод, но это, похоже, не сработало. Как так:

$('.userImageValue').val(img.src); 

<input class="userImageValue" ng-model="data.userImage" style="display: none;"> 

Я просто понял, если я изменить значение, когда он будет добавлен к невидимому входу он работает. Итак, как я могу лучше сделать ввод «register» после того, как значение src вставлено?

Вот контроллер, в котором создается новый пользователь.

$scope.list = $firebaseArray(new Firebase("https://my-db.firebaseio.com/users")); 

    // Create user button 
    $scope.add_new_user = function() { 
    console.log($scope.data); 
    $scope.list.$add($scope.data); 
    $scope.data = {}; 
    } 

Это вход на страницу, которая в настоящее время работает с кодом выше и сохраняет новое поле для текущего пользователя создается.

<input id="firstname" type="text" ng-model="data.firstname" class="form-control" placeholder="First name"> 

Это часть я застрял на мне нужно сохранить значение img.src из кода ниже в качестве нового поля в FireBase БД для пользователя в настоящее время создается.

var userImageUploader = document.getElementById('userImageUploader'); 

    userImageUploader.addEventListener('change', function(e) { 
    var file = userImageUploader.files[0]; 
    var imageType = /image.*/; 

    if (file.type.match(imageType)) { 
     var reader = new FileReader(); 
     reader.onload = function(e) { 
     var img = new Image(); 
     img.src = reader.result; 

     } 
     reader.readAsDataURL(file); 
    } 
    }); 

Надеюсь, это имеет смысл и благодарит вас за продвинутый!

+0

«Регистрация» не работает, потому что вы используете jquery для вставки значения во входные данные, привязанные к переменной области видимости. Я думаю, что на этот вопрос/на некоторые его разновидности уже был дан ответ, я попытаюсь найти несколько примеров. –

+0

Вот такой же симптом в другом [вопрос] (http://stackoverflow.com/q/29143088/1526037) –

ответ

0

Возможно, вам захочется использовать Parse для части изображения.

1) он также имеет свободный ярус, но с гораздо большим объемом хранения, чем уровень свободной базы, который быстро будет исчерпан изображениями. 2) у него есть лучшие инструменты для изображений imo.

+0

Этот ответ не имеет отношения к этому вопросу, поскольку @BtrCSowl не хранит фактические файлы изображений на Firebase , а скорее src url изображений. Firebase - это база данных nosql (ключ/значение), а не служба хранения объектов. Это означает, что вы не можете напрямую хранить файлы изображений в Firebase. Однако вы можете хранить _full_ изображений в Firebase как закодированные в base64 строки. Однако для преобразования изображения в строку base64 требуется немного времени, а затем обратно, так что это не лучший способ сделать это. –

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