将ng-model变量传递给ng-click函数

时间:2016-12-19 10:15:35

标签: angularjs

在我的情况下,我生成"最近的搜索"链接从列表中获取锚文本(ng-repeat =" meteo.cityList中的城市")。 然后我想调用一个传递ancor文本内容的函数,所以我试图使用ng-model(ng-model =' meteo.button')来获取值和ng-点击调用该函数(ng-click =" meteo.search(meteo.button)")

<nav class="recent-cities">   
    <h3>Search History:</h3>

      <a ng-repeat="city in meteo.cityList" ng-model='meteo.button'  ng-click="meteo.search(meteo.button)"  href="#">{{city}}</a>

 </nav>

它不起作用,因为ng-model没有获得价值。我也想通过&#34; city&#34;直接到功能,但它不起作用。 我想问题是关于渲染,但我无法弄清楚如何。

以下是整个代码:http://codepen.io/tiuscia/pen/qqLQNd

我将感激任何帮助

感谢

2 个答案:

答案 0 :(得分:2)

先使用div

<div ng-repeat="city in meteo.cityList">
<a ng-model='city.button'  ng-click="meteo.search(city.button)"  href="#">{{city}}</a>

答案 1 :(得分:0)

解决此问题的方法是使用$event检索点击的元素,所以:

<a ng-model='city.button'  
   ng-click="meteo.search($event)"  href="#">{{city}}</a>

然后你可以在你的控制器功能中做这样的事情:

$scope.meteo.search = function(event) {
  var city = event.target.text; // or event.currentTarget.text
  // the rest of your code here...

另一种方法是创建自己的自定义指令,因此,您将城市名称(或city.button)传递给指令。