我想,我想做的事情很简单。我试图根据从选择框中选择的内容更新链接到控制器中的对象的一些值。希望你们能够解释我做错的事情。
我的控制器实例化对象(我不确定我是否真的需要这样做):
$scope.newInvoice = {}
然后我的html提供了一个下拉框,其中包含可以选择的发票列表,表应使用所选发票中的值自动更新,但它不会:
<tr>
<td>
<select ng-model="newInvoice">
<option ng-repeat="name in names" value="{{name}}">{{name.Name}}</option>
</select>
</td>
<td>TBD</td>
<td>{{newInvoice.PoNumber}}</td>
<td>{{newInvoice.Price | currency}}</td>
<td>
<input type="number" ng-model="newInvoice.Quantity"/>
</td>
<td>{{newInvoice.Price * newInvoice.Quantity | currency}}</td>
</tr>
基本上,表格不会填写选择框提供的值。但是如果我使用newInvoice
将<pre>{{newInvoice}}</pre>
打印到屏幕上,我可以看到newInvoice
确实拥有所有值,所有值都正确命名。所以看起来选择框与模型绑定得很好。有什么想法吗?
答案 0 :(得分:3)
使用ng-options
代替使用ng-repeat
呈现选项,因为当您使用ng-repeat
呈现options
时,它会使用{{1}填充value
属性但那已经object
了。就好像你在场景后面使用stringified
一样,它确实将实际对象值分配给提到的ng-options
变量。
<强>标记强>
ng-model