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/

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

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

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;
}
点赞