2017-08-13 88 views
1

我使用下面的代碼段,以列出html文檔 在對象的數組,它示出了鏈路準確的列表...AngularJs:NG-點擊()接受無效的參數

<div ng-repeat="item in List"> 
    <a ng-click="Show('{{item.name}}');"> ShowName </a> 
</div> 

它輸出下面的HTML代碼:

<a ng-click="Show('name1')">ShowName</a> 
    . 
    . 
    . 
    <a ng-click="Show('//upto nth name')">ShowName</a> 

這裏是我的角度代碼:

 $scope.Show= 
     function(getName) 
     { 
     alert(getName); 
     } 

但是當I C舔它顯示的任何鏈接「{{item.name}}」,而不是顯示在alertbox「名1」或相應的名稱...

我也試過

 Show(&#39;{{item.name}}&#39;); 

但結果是一樣的。 ..

我在做什麼錯?

+1

可以使用NG點擊= 「顯示(item.name);」 – hasan

回答

1

你不應該在Angular指令中使用{{}}。您的代碼應該是這樣的:

<div ng-repeat="item in List"> 

    <a ng-click="Show(item.name)"> ShowName </a> 

</div> 
+0

謝謝你的解決方案@urielSilva – mubsher

+0

@ mubsher沒問題,你介意答案? – urielSilva

+0

@urielSilve我有11 reputatuion哪些是不夠upvote任何awer或問題...我會upvote,因爲我得到15聲譽... – mubsher

1

您可以下列風格

<li ng-repeat="item in List"> 
    <a href="" ng-click="clickit($index)">{{item.name}}</a> 
</li> 

這裏使用$指數代表的數組的索引。我更喜歡使用這個,因爲在這裏你可以訪問完整的對象,然後只是做你想做的事情。

$scope.clickit = function(x) { 
    console.log($scope.List[x]) 
} 

,如果你不喜歡上面的樣式,你可以用下面的風格

<li ng-repeat="item in List"> 
    <a href="" ng-click="clickit(item.name)">{{item.name}}</a> 
</li> 
+0

感謝您的答覆,但我不明白朮語$索引 什麼$指數包含在其中我的意思是什麼將是價值 $ index =? 在每個重複中, 它是否包含「item」中的對象或類似 $ index ['0']將eqaul列表['0']? – mubsher

+0

$ index是您的集合中的索引/鍵(就像php的foreach中的$ key一樣)。假設您有一個名爲List的數組,其中包含五個對象。所以List [0]表示數組的第一項。列表[1]代表數組的第二項,依此類推。對於第一次重複/迭代,$ index將爲0.對於第二次重複/迭代,$ index將是1,依此類推。 –

+0

哦,這太棒了,謝謝@sahedsawon – mubsher

1

這裏的問題是,你是傳遞變量時,作爲參數傳遞給函數使用'{}

變化

<a ng-click="Show('{{item.name}}');"> ShowName </a>

<a ng-click="Show(item.name);"> ShowName </a>