If you need to update form data at runtime, redefine the form Data object.
In Addition your contoller does not have a model-object which seems strange as you pass the data with $then you should get what is in your $scope.product.
And adding the product to your ng-model and not the placeholder is where it should be.
In the following example, the Select Box widget changes the form Data object.
View Demo The Form widget provides methods that update specific form Data fields and rerender the corresponding editors without rerendering the whole widget.
I've tried asking for other methods of how to do this, but just catching the submit event and adding the code manually is easiest right now (and I haven't gotten answers to my other questions).