Angularjs assigning value to ng-model using ng-init

Problem

Hi I have following issue which seems easy and should work but is not.

In my code I have input

 <input type="text"  ng-model="c.Id"  ng-init="c.Id={{pId}}"/>

When I look at the DOM using firebug tool I see the value

 <input type="text"  ng-model="c.Id"  ng-init="c.Id=6"/>

But it wont display 6 in the input box neither I can access it using #scope. Please let me know what is wrong here and how to fix it so that ng-model can have from ng-init. Thanks

Problem courtesy of: J. Davidson

Solution

Get rid of the braces in the expression so that it will evaluate pId directly from the scope

<input type="text"  ng-model="c.Id"  ng-init="c.Id=pId"/>

Plunk

Solution courtesy of: Marc Kline

Discussion

ng-inittakes an expression and therefore you do not need the curly braces:

<input type="text"  ng-model="c.Id"  ng-init="c.Id=pId"/>
Discussion courtesy of: Sebastian

This recipe can be found in it's original form on Stack Over Flow.