2016-08-13 99 views
0

我试图检测何时从AngularJS选择的localytics下拉列表中选择一个选项。AngularJS - 选择localytics ng-change不起作用

下面是下拉代码:

<select chosen data-placeholder="Buscar..." 
    class="w-100" 
    ng-model = "medSearchType" 
    ng-change = "changeMedSearch(medSearchType)"> 
     <option value="Medicamento">Medicamento</option> 
     <option value="Componente">Componentes Activos</option> 
</select> 

而在我的控制,我有以下功能:

$scope.changeMedSearch = function (searchType) { 
    console.log(searchType); 
} 

它工作正常第一次,但如果我要选择另一个选项在控制台中出现以下错误,并且alos下拉菜单不会选择我想选择的其他选项:

未捕获TypeError:无法设置p roperty'selected'未定义

我该如何解决这个问题?

非常感谢。

回答

-1

我也跟着MrJSingh的建议和使用NG选项,但问题还是发生了。

我然后添加一个空的,它终于摸索

<select chosen data-placeholder="Buscar..." 
    ng-model = "medSearch" 
    ng-change = "changeMedSearch(medSearch)" 
    ng-options = "size as size for size in medSearchTypes"> 
    <option></option> 
</select> 
+0

我不明白,为什么你需要一个空的选项标签?你能发布你的工作代码吗? –

-1

尝试改用ng-options。

angular.module("app",[]).controller("ctrl",function($scope){ 
 
    $scope.items = [1,2,3,4,5,6] 
 
    $scope.changeMedSearch = function(medSearchType){ 
 
     alert(medSearchType) 
 
    } 
 
    })
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width"> 
 
    <title>JS Bin</title> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script> 
 
    
 
</head> 
 
<body ng-app="app" ng-controller="ctrl"> 
 
    <select ng-model = "medSearchType" 
 
    ng-change = "changeMedSearch(medSearchType)" ng-options="size as size for size in items" 
 
    ng-model="item" ng-change="update()"></select> 
 
</body> 
 
</html>

+0

仍是同样的错误,如果我带走的选择指令它的工作原理,但我需要的是与指令然后 –

+0

AHA有不同方法,你可以使用$ scope。$ watch –

+0

@FerVargas [看看这个答案](http://stackoverflow.com/questions/24754005/how-to-implement-an-ng-change-for-一个自定义指令) –