41

I have input like this

<input type="text" name="widget.title" ng-model="widget.title" value="{{widget.title}}"/>

I want to change input value dynamically so i use that but it doesn't change the value:

$scope.widget.title = 'a';

5 Answers 5

69

You don't need to set the value at all. ng-model takes care of it all:

  • set the input value from the model
  • update the model value when you change the input
  • update the input value when you change the model from js

Here's the fiddle for this: http://jsfiddle.net/terebentina/9mFpp/

Sign up to request clarification or add additional context in comments.

Comments

18

If you don't wan't to use ng-model there is ng-value you can try.

Here's the fiddle for this: http://jsfiddle.net/Rg9sG/1/

4 Comments

On the fiddle anyway, this seems to only work if the value in the input field has never been changed.
I have the same problem, I cannot change the value from the controller
Only works for setting the value, but won't update the scope variable after the user changed the input: "It can also be used to achieve one-way binding" (docs.angularjs.org/api/ng/directive/ngValue)
This was an awesome solution for my datepickers.
2

Use ng-value for set value of input box after clicking on a button:

"input type="email"  class="form-control" id="email2" ng-value="myForm.email2" placeholder="Email"

and

Set Value as:

 $scope.myForm.email2 = $scope.names[0].success;

Comments

-1

Some times there are problems with funtion/features that do not interact with the DOM

try to change the value sharply and then assign the $scope

document.getElementById ("textWidget") value = "<NewVal>";
$scope.widget.title = "<NewVal>";

Comments

-6

{{widget.title}} Try this it will work

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.