角度绑定未正确更新

时间:2016-03-15 19:00:28

标签: javascript angularjs ng-options

我想,我想做的事情很简单。我试图根据从选择框中选择的内容更新链接到控制器中的对象的一些值。希望你们能够解释我做错的事情。

我的控制器实例化对象(我不确定我是否真的需要这样做):

$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确实拥有所有值,所有值都正确命名。所以看起来选择框与模型绑定得很好。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

使用ng-options代替使用ng-repeat呈现选项,因为当您使用ng-repeat呈现options时,它会使用{{1}填充value属性但那已经object了。就好像你在场景后面使用stringified一样,它确实将实际对象值分配给提到的ng-options变量。

<强>标记

ng-model