2

现在在选择框中选择一个选项会使用所选名称更新输入,这就是我想要的。但是,如果在输入字段中输入内容,然后在选择框中选择另一个选项,它将停止更新输入。怎么来的?

这是代码:

<div ng-app>
<div ng-controller="TestCtrl">

    <select ng-model="selected" ng-options="box.name for box in selectBoxData">            
    </select>
    <input type="text" name="newSelectValue" value="{{selected.name}}"/>
    <button>Save</button>
</div>    

function TestCtrl($scope) 
{

    $scope.selectBoxData = [
        { 'name': 'test1', 'id': 1 },
        { 'name': 'test2', 'id': 2 },
        { 'name': 'test3', 'id': 3 },
    ];

}

http://jsfiddle.net/C8hZN/

4

2 回答 2

1

当您在输入框的 value 属性中使用 {{selected.name}} 时,该值将链接到所选对象,但是一旦您在输入框中键入,您修改该值,使其与对象断开连接参考。这就是未来对选择框的修改不再更新文本框的原因。

于 2013-07-25T21:27:51.583 回答
0

If you look at the valueattribute in the console you'll see that it still updates correctly when the select changes. 我认为它不会显示该值,因为在框中输入的任何内容都优先于属性值。

为了解决这个问题,我会在文本框上设置一个模型并将所选选项的名称绑定到该模型。然后当按下更新时,从输入中设置所选选项的名称。

http://jsfiddle.net/C8hZN/3/

于 2013-07-25T21:14:09.870 回答