使用AngularJS将选择重置为默认值

Geo*_*mov 14 angularjs

我对AngularJS有以下问题.我有一个选择与ngOptions创建的选项.我想将所选选项设置回默认选项.我试图删除模型变量,例如:

if(angular.isDefined($scope.first)){
    delete $scope.first;
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用.这是我的HTML.

    <div ng-app="app">
        <div ng-controller="testCtrl">
            <select data-ng-model="first"  data-ng-options="item.name for item in selectContent" required="required">
              <option value="" style="display: none;">-- select --</option>
            </select>
            {{first.value}}
<hr/>
        <input type="button" value="reset dropdown" data-ng-click="resetDropDown()"/>
        </div>
    </div>
Run Code Online (Sandbox Code Playgroud)

这是我的JavaScript代码:

angular.module('app', []).controller('testCtrl', function ($scope) {
    $scope.selectContent = [
        {
            name: "first",
            value: "1"
        },
        {
            name: "second",
            value: "2"
        }
    ];

    $scope.resetDropDown = function() {
        if(angular.isDefined($scope.first)){
            delete $scope.first;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

这是工作jsfiddle:

http://jsfiddle.net/zono/rzJ2w/

我怎么能解决这个问题?

最好的祝福.

iva*_*rni 9

您的重置按钮位于包含控制器的div之外.这意味着您尝试使用它的上下文中不存在您的reset-function.

改成:

<div ng-app="app">
    <div ng-controller="testCtrl">
        <select data-ng-model="first"  data-ng-options="item.name for item in selectContent" required="required">
          <option value="" style="display: none;">-- select --</option>
        </select>
        {{first.value}}
        <hr/>
        <input type="button" value="reset dropdown" data-ng-click="resetDropDown()"/>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

使用调试器确保您尝试修复的代码实际上正在执行时,总是一个好主意.


Alw*_*ner 6

$scope.resetDropDown = function() {
    $scope.first = "";
}
Run Code Online (Sandbox Code Playgroud)