How to use angularjs ng-click with html5 datalist

♀尐吖头ヾ 提交于 2019-12-01 15:59:12

问题


I'm working with AngularJS and i want to use the directive ng-click when an element of a datalist (html5) is selected.

Here is an example of my actual code:

<label>Search</label>
<input type="text" class="input-search" list="datalistcit" ng-change="changeQuery(queryCity)" ng-model="queryCity" />
<datalist id="datalistcit">
   <option ng-repeat="city in cities" ng-click="goCity(city)" value="{{city.name}}">
   </option>
</datalist>

It doesn't work, never execute the js method goCity.. any idea?


回答1:


ng-click won't work on datalist options, as the click event (nor any of the keypress events) doesn't seem to be fired when using the datalist.

You will have to use your ng-change on the function input and extend that to check if the current value is also present in the datalist.




回答2:


datalist is same as select, you don't put the event handler in option, you put the event handler in select or input. Also you don't use ng-click, you use ng-change for this.




回答3:


<input list="stateList"  name="state" ng-model = "payCntrl.billingAddressService.billingAddress.state">
    <datalist id="stateList">
        <select>
            <option ng-repeat="state in payCntrl.billingAddressService.states | filter : {country : payCntrl.billingAddressService.billingAddress.country}" 
                                    value="{{state.name}}"></option>
       </select>    
   </datalist>
  • The name and ng-model are on the input .

    Data :

    states : [{name : "NJ" , country: "USA"} ,  {name : "NY" , country: "USA"} , 
             {name : "GA" , country: "USA"} ,   {name : "TX" , country: "USA"} , 
             {name : "CA" , country: "USA"} , 
             {name : "Delhi" , country: "India"} ,  {name : "Karnataka" , country: "India"} , 
             {name : "Hyderabad" , country: "India"} ,  {name : "West Bengal" , country: "India"} , 
             {name : "Zhejiang" , country : "China"} , {name : "Hubei" , country : "China"},
             {name : "LONDON" , country : "United Kingdom"} , {name : "MANCHESTER" , country : "United Kingdom"}] 
    


来源:https://stackoverflow.com/questions/22340968/how-to-use-angularjs-ng-click-with-html5-datalist

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!