AngularJS选择其他选项并从文本框中获取值

时间:2014-07-16 13:22:40

标签: angularjs angularjs-directive angularjs-select2

使用AngularJS我有一个选定的选项列表和一个额外的" New"选项。我想做的是,当" New"选择选项后,它将显示一个文本框以添加新值。

<select ng-model="group.name" ng-options="bl.Name for bl in Groups" >
      <option value="VALUE FROM TEXT BOX">New</option>
</select> 

<div class="col-md-4" ng-show="WHEN NEW OPTION IS Chosen ">
<input class="text-box" type="text" name="NewValue" ng-model="group.name" />
</div>

3 个答案:

答案 0 :(得分:4)

您可以尝试这样

Working Demo

<div ng-app='myApp' ng-controller="ArrayController">
    <select ng-model="group.name" ng-options="Group.Name for Group in Groups"></select>
    <div class="col-md-4" ng-show="group.name.Value == 'new'">
        <input class="text-box" type="text" name="NewValue" ng-model="newValue" />
        <button ng-click="add(newValue)">Add</button>
    </div>
</div>

答案 1 :(得分:0)

只需观察所选的项目更改:

$scope.displayDiv = false;
$scope.newval = 'newval';
$scope.$watch('group.name', function(newval, oldval) {
    if (newval == $scope.newval) {
         $scope.displayDiv = true;
    }

}

和HTML:

<div class="col-md-4" ng-show="displayDiv">

答案 2 :(得分:0)

此处a working example。 首先,我们设置选项和输入。

<select ng-model="curopt" 
        ng-options="option.name for option in options">
</select>
<input type="text" ng-model="newopt" 
       ng-show="curopt.name == 'New'" 
       ng-keypress="newOption($event)">

我们输入的ng-show选项与当前所选选项的名称相关联。我们还添加了一个ng-keypress指令,允许我们处理被按下的回车键。

现在到控制器......

$scope.newOption = function(event) {
  if (event.which == 13) {
    $scope.options.push({ name : $scope.newopt, value : $scope.newopt });
    $scope.newopt = '';
  }
}

因为我们的选择输入选项与$scope.options相关联,所以我们可以简单地将文本输入值附加到数组中,而角度将处理由于数据绑定而导致的更新。