AngularJS - 在每个下拉选项上触发更改

时间:2014-12-17 21:26:19

标签: javascript angularjs

我有一个下拉列表,用于选择要生成的报告,因此当用户从下拉列表中选择报告时,它会生成并报告移动设备。使用ng-change,它只会在用户想要生成不同的报告时获取。我喜欢它,所以他们可以选择相同的下拉项目两次并让它下载报告两次。

我的代码类似于:

标记:

<div>
    <select ng-model="currentlySelected" 
            ng-options="opt as opt.label for opt in options" 
            ng-change="logResult()">
    </select>
    The value selected is {{ currentlySelected.value }}.
</div>

使用Javascript:

angular.module('demoApp', []).controller('DemoController', function($scope) {

    $scope.options = [
        { label: 'one', value: 1 },
        { label: 'two', value: 2 }
    ];
    $scope.currentlySelected = $scope.options[1];

    $scope.logResult = function() {
         console.log($scope.currentlySelected);   
    }
});

小提琴http://jsfiddle.net/KyleMuir/cf59ypyw/

我期望两次选择“两个”并将结果记录到控制台两次。这是可行的还是我应该为此使用不同的指令?

1 个答案:

答案 0 :(得分:2)

添加一个按钮肯定会有所帮助,它也会带走任何额外的编程,它只是一个额外的元素:

http://jsfiddle.net/ootnh0sz/1/

<select ng-model="currentlySelected" ng-options="opt as opt.label for opt in options" ng-change="logResult()"></select>
<button ng-click="logResult()"> Go </button>

更新。

重置表单似乎是剩下的唯一选择。

http://jsfiddle.net/ootnh0sz/3/

$scope.logResult = function() {
     console.log($scope.currentlySelected); 

    // once downloaded
    $scope.currentlySelected = null;
}