2017-11-14 5 views
0

ちょっとした配列があり、ng-repeatを使って記述しています。あなたはいくつかの番号をクリックすると、passParameterToServiceパラメータインデックスに渡す必要がありますし、this.whichBoard変数にサービスで保存する必要があります。しかし、私は何か間違っている、誰かがなぜng-repeatがサービスを追加するときに機能しないのか、そしてなぜ何か番号をクリックした後に変数に書き込まない理由を教えてくれますか?あなたのサービスでngclickを使ってパラメータをサービスに渡すAngularJS

demo 

https://codepen.io/Turqus/pen/WXEryN

答えて

0

あなたはthis.whichBoard宣言したが、関数の内部で、あなたは再び同じ名前の変数を使用していました。あなたはthis.board内部に設定されている場合、それはおそらく動作します:

app.service('serwis',()=> { 
    this.whichBoard = (index) => { 
    this.board = index; 
    }; 
}); 

をまた呼び出し方法では、あなたが持っている:あなたが値ではありません$インデックスを、渡している

<a href="#" ng-click="passParameterToService($index)"> 
    <span ng-repeat="item in arrayIndex">{{item}}</span> 
</a> 

。また、あなたは、メソッド呼び出しの内部で繰り返しを持っているので、それを変更します。

<div ng-repeat="item in arrayIndex track by $index"> 
    <a href="#" ng-click="passParameterToService(item)">{{item}}</a> 
</div> 
+0

ねえ、私はサービスで変数を持っている場合、例えばthis.helloWorld =「」、私は、この変数にNG-クリック値で渡すことができます?たとえば、ng-click = "serwis.helloWorld = null" ??、これは機能しますか? –

+0

ビューからサービス番号には移動しません。あなたはコントローラを通過する必要があります。 – rrd

+0

最後の質問、もし私が変数this.hello = ''でserwisを持っていれば;コントローラでは、私はserwis.hello = 'yoYo'を作成します。この変数はサービスで変更されますか? –

関連する問題