1

Form elements

<input  ng-model="student.person.firstName" type="text"/>
    <textarea ng-model="student.person.photo" id="imageText" >
    </textarea>
<input type="file" ng-model="" id="imageUpload" onchange="getbase64();"/>

base64() method sets the text for <textarea>. Now JS code

$scope.saveInfo = function(){    
    console.log($scope.student.person.firstName);
    console.log($scope.student.person.photo);
};

I don't get anything in person.photo whereas person.firstName gets me the value of the name. Is there a binding problem because i'm setting the value of the <textarea> using js with base64 content

http://plnkr.co/edit/cElm8PD3hNzEWBNesegW?p=catalogue plunker link.

Pavan
  • 985
  • 2
  • 15
  • 27

1 Answers1

0

You need to manually trigger the change event (inside fileReader.onload ), something like:

 var element = document.getElementById('imageText');
 if ("createEvent" in document) {
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent("change", false, true);
    element.dispatchEvent(evt);
 } else
    element.fireEvent("onchange");

working plunker: http://plnkr.co/edit/QGCl6ly5HMmAoDwyt4YO?

Grundy
  • 13,356
  • 3
  • 35
  • 55
ABOS
  • 3,723
  • 3
  • 17
  • 23