簡體   English   中英

在ng-click中未定義函數參數

[英]Function parameter undefined inside ng-click

我已經檢查了其他問題,但沒有解決此問題。

這是我的完整代碼: 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。

您能告訴我我做錯了嗎?

首先,它對我有用(Chrome 55)...我在您的搜索功能中執行了console.log(input) ,當我單擊搜索歷史記錄項時,我看到它已返回。

其次,用於設置默認搜索參數的語法為ES6,並且在瀏覽器中可能不受支持(也就是說,如果您不進行某種向下轉換,我認為您不會這樣做)。

相反,我將像這樣分配默認函數參數:

$scope.search = function(input) {
  input = (typeof input !== 'undefined') ?  input : self.city;
  // ...
}

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/Default_parameters

或者,如果您想查看帶有參數的ng-click,請查看此演示: https : //plnkr.co/edit/BzazAa?p=preview

如果可以,請使用$ scope定義函數:

然后定義這樣的功能

$ scope.search =函數(城市){

};

請注意,我只是在()內給了一個名字,沒有別的,這應該起作用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM