0
我有一个应用程序有两个单独的选择与绑定属性。我希望用户能够更改所选选项中的选定选项,这将触发一个功能。但函数将使用选择的BOTH中选定选项的值发送到$ http调用以进行数据库查询。以下是代码片段:ng-change不会触发函数
HTML:
<div class="yearFilter">
<label>Working Year : </label>
<select ng-model="filterYear" ng-options="year.code as year.code for year in filterYears | unique:'code'" ngclick="setWorkingData({{filterSport}},{{filterYear}})">
</select>
</div>
<div class="sportFilter">
<label>Working Sport : </label>
<select ng-model="filterSport" ng-options="sport.code as sport.desc for sport in filterSports | unique:'code'" ngclick="setWorkingData({{filterSport}},{{filterYear}})"></select>
</div>
JS:
var PermitsCtrl = function ($scope, $http) {
var init = function() {
$http({
...
}).success(function(data) {
...
setWorkingData($scope.filterYear,$scope.filterSport);
}).error(function(error){
...
});
}
var setWorkingData = function (year, sport) {
$http({
url ....
...
data : "action=2&year_code="+year+"&sport_code="+sport,
...
}).success(function(data) {
$scope.workingData = data.workingData;
}).error(function(error) {
...
});
}
init();
}
在加载页面时,init()被成功触发,它建立了选择选项,进而触发setWorkingData()函数,它根据调用init()函数发送的两个选择(filterYear和filterSport)中的值,相应地更改DOM中的其他值。到目前为止,一切都很好。但更改select中的值不会触发setWorkingData函数。被呈现的HTML看起来是正确的:
<select ng-model="filterYear" ng-options="year.code as year.code for year in filterYears | unique:'code'" ng-change="setWorkingData(15,FB)" class="ng-valid ng-dirty"><option value="0" selected="selected">14</option><option value="1" selected="selected">15</option></select>
当我改变无论是在浏览器中选择,对于setWorkingData()函数的参数值是正确的DOM两种选择呈现所选择的选项,但功能从未被触发。
这完善。谢谢@ExpertSystem! – mike