2017-05-26 11 views
0

私のHTMLは引数をディレクティブ関数に角度で渡すにはどうすればよいですか?

<ul id="suggestions" class="suggestions-list"><li 
     ng-repeat="suggestion in suggestions track by $index" 
     class="suggestion-item" 
     ng-click="toggleSkill(suggestion, 'here')" 
     ng-class="{active : selectedIndex === $index}" 
    ><span class="small clr-secondary">{{suggestion}} - {{$index}}</span></li></ul> 

され、ディレクティブで、私が持っている:

link: function(scope, elem, attrs) { 
    scope.toggleSkill = function(item, index) { 
    debugger 
    SkillsService.searchResults = [] 

    if (scope.selectedTags.indexOf(scope.suggestions[index]) === -1) { 
     scope.selectedTags.push(scope.suggestions[index]) 
     scope.searchText = "" 
何らかの理由で

index機能はundefinedとして入ってきますで。それはなぜでしょうか?

+0

本当に奇妙な提案は正しく渡されますか?あなたの関数の中で 'console.log(arguments);'を試してみると、どこかのパラメータ 'ここ'が見えますか? – quirimmo

+0

'suggestion'が正しく渡されます – Shamoon

答えて

1

です。ここでは読みやすさのために、少し上に削除されたバージョンです。これが機能するかどうか確認してください。

<!--inside ur template--> 
<p class="text" ng-click="zoo('param1', 'param2')">click me</p> 

// inside ur directive 
$scope.zoo = function (x, y) { 
    console.log('my params ', x, y); 
} 
-1

試してください:あなたは、私は、テンプレート/ディレクティブの内側にそれを貼り付けてコピーすると、コードが正常に動作します

ng-click="toggleSkill(suggestion, $index)" 
+0

パラメータにsuggestionインスタンスがすでにあるため、scope.suggestions [index] を使用する必要はありません。 項目がscope.selectedTagsに存在しない場合は、 scope.selectedTags.push(アイテム) 私を理解していますか? (私の英語で申し訳ありません) –

関連する問題