我已经检查了其他问题,但我没有解决这个问题。
以下是我的完整代码:http://codepen.io/tiuscia/pen/qqLQNd
我在控制器中有一个函数,我调用的是输入文本的参数和最近链接的参数。
这些链接在ng-repeat中,他们使用ng-click调用函数:
HTML
<h3>Search History:</h3>
<div ng-repeat="city in meteo.cityList" >
<a ng-click="meteo.search(city)" href="#">{{city}}</a>
</div>
单击链接时,将调用该函数,但不传递任何参数。 我没有使用$ scope。
你能告诉我我做错了吗?答案 0 :(得分:0)
首先,它适用于我(Chrome 55)...我在您的搜索功能中执行了console.log(input)
,当我点击搜索历史记录项时,我看到它已被返回。
其次,您用于设置默认搜索参数的语法是ES6,并且可能不支持跨浏览器(即如果您没有进行某种向下转换,我将假设您不是这样)。
我会改为指定你的默认函数参数:
$scope.search = function(input) {
input = (typeof input !== 'undefined') ? input : self.city;
// ...
}
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters
或者,如果您想看到带有参数的ng-click,请查看此演示:https://plnkr.co/edit/BzazAa?p=preview
答案 1 :(得分:-1)
如果可以,请使用$ scope定义函数:
然后定义像这样的函数
$ scope.search = function(city){
};
请注意我只是在()中给出了一个名字而没有别的,这应该有效