选择 select 不在 ng-click 上调用函数
Chosen select not calling a function on ng-click
我正在使用一个选定的 select,我在事件 ng-click 发生时添加了一个函数调用,但它没有做任何事情,当我在一个按钮中调用相同的函数时它有效,这是为什么?
ng-change 也不起作用,更糟糕的是,它吃掉了我的选项,只留下第一个。
我的select代码:
<select ng-model="ind_oferta" multiple class="control-group chosen-select" chosen >
<optgroup label="Oferta">
<option value=""> </option>
<option ng-click="aplicarFiltro()" ng-repeat="menuOpcion in menu[0].opciones.oferta" value={{menuOpcion.id}}>
{{menuOpcion.tipo}}</option>
</optgroup>
</select>
功能很简单,就是一个javascript提醒
$scope.aplicarFiltro = function(){
alert("hello");
}
而且我认为不值得输入按钮代码,那个代码很管用...
编辑: 我将 select 代码更改为此,仍然无法调用该函数,帮助!
<select multiple class="control-group chosen-select" chosen style="width:250px;"
ng-model="ind_oferta" ng-click="aplicarFiltro();"
ng-options="menuOpcion.id as menuOpcion.tipo for menuOpcion in menu[0].opciones.oferta">
<option>--</option>
</select>
您应该将 ng-options
指令与 ng-model
一起使用(您仍然可以添加一个 <option>
作为默认值)。它可能看起来像这样:
<select ng-options="menuOpcion.tipo for menuOpcion in menu[0].opciones.oferta"
ng-model="selected"
ng-change="aplicarFiltro()" chosen multiple>
<option value=""></option>
</select>
有很多自定义选项,所以最好查看文档。
要获得被用户删除的选项,您可以在您的控制器中执行以下操作:
var previousSelection = [];
$scope.changedSelection = function () {
// Check if the current selection contains every element of the previous selection
for (var i = 0; i < previousSelection.length; i++) {
if ($scope.selectModel.indexOf(previousSelection[i]) == -1) {
// previousSelection[i] was deselected
}
}
// Set the previous selection to the current selection
previousSelection = $scope.selectModel;
}
我正在使用一个选定的 select,我在事件 ng-click 发生时添加了一个函数调用,但它没有做任何事情,当我在一个按钮中调用相同的函数时它有效,这是为什么?
ng-change 也不起作用,更糟糕的是,它吃掉了我的选项,只留下第一个。
我的select代码:
<select ng-model="ind_oferta" multiple class="control-group chosen-select" chosen >
<optgroup label="Oferta">
<option value=""> </option>
<option ng-click="aplicarFiltro()" ng-repeat="menuOpcion in menu[0].opciones.oferta" value={{menuOpcion.id}}>
{{menuOpcion.tipo}}</option>
</optgroup>
</select>
功能很简单,就是一个javascript提醒
$scope.aplicarFiltro = function(){
alert("hello");
}
而且我认为不值得输入按钮代码,那个代码很管用...
编辑: 我将 select 代码更改为此,仍然无法调用该函数,帮助!
<select multiple class="control-group chosen-select" chosen style="width:250px;"
ng-model="ind_oferta" ng-click="aplicarFiltro();"
ng-options="menuOpcion.id as menuOpcion.tipo for menuOpcion in menu[0].opciones.oferta">
<option>--</option>
</select>
您应该将 ng-options
指令与 ng-model
一起使用(您仍然可以添加一个 <option>
作为默认值)。它可能看起来像这样:
<select ng-options="menuOpcion.tipo for menuOpcion in menu[0].opciones.oferta"
ng-model="selected"
ng-change="aplicarFiltro()" chosen multiple>
<option value=""></option>
</select>
有很多自定义选项,所以最好查看文档。
要获得被用户删除的选项,您可以在您的控制器中执行以下操作:
var previousSelection = [];
$scope.changedSelection = function () {
// Check if the current selection contains every element of the previous selection
for (var i = 0; i < previousSelection.length; i++) {
if ($scope.selectModel.indexOf(previousSelection[i]) == -1) {
// previousSelection[i] was deselected
}
}
// Set the previous selection to the current selection
previousSelection = $scope.selectModel;
}