1

非常に複雑なネストされた角度のオブジェクトがあります。 オブジェクトの最後にng-clickが機能しませんでした。ng-clickのためのng-repeatのスコープを見つける

角度スコープの仕組みを読んで、ng-clickでループ内の各アイテムの子スコープを作成します。 ng-clickがスコープ内で呼び出そうとしている関数を見つけることができない場合、スコープを返す関数をどのように見つけるのでしょうか?

私が何を意味するか。ここ

:私はそれが動作しない、直接 'function_ngclick_cant_get' と呼ぶ場合

mainApp.controller('fileController', function ($scope) { 

    $scope.function_ngclick_cant_get = function(){ 
    // stuff here 
    }; 

    $scope.getMyCtrlScope = function() { 
     return $scope; 
    } 
} 

はここBTN

<button class="btn btn-default" type="submit" value="Submit" ng-click="getMyCtrlScope().function_ngclick_cant_get();">call function</button> 

です。 例のように呼び出すとうまくいきます。

しかし、それはなぜ機能しますか?彼らは同じ範囲にあります。

+0

これは機能します。 U型か何かが必要ですhttps://plnkr.co/edit/bXgN9MDGq1IFkOrXIUnc?p=preview –

+0

私はそれが動作することを知っている...私はちょうど理由を理解したい。 – matisa

+0

ok私はもっと説明しようとします - オブジェクトが多くの入れ子にされたng-repeatsを持つとき、nc-clickは止まりません。私は約6 こちらを参照してくださいしている します。https:私は問題を修正 を//stackoverflow.com/questions/46513069/finding-scope-in​​side-ng-repeat-for-ng-click - 私はなぜ支えるありませんできます。 – matisa

答えて

0

私はあなたが何をしようとしているのか分からないので間違っているかもしれませんが、なぜ$ scopeを返す関数を設定していますか?あなたは返品やスコープなしで簡単に行うことができます。

コントローラ内の$ scopeオブジェクトにプロパティを追加すると、ビュー(HTML)はこれらのプロパティにアクセスできます。 だからあなたのコードは次のようになります。

<button class="btn btn-default" type="submit" value="Submit" ng-click="function_ngclick_cant_get();">call function</button> 

あなたはスコープについてW3Schoolsの上で確認することができます。https://www.w3schools.com/angular/angular_scopes.asp

UPDATE:

を私はあなたが使用できることを示すために、いくつかのダミーコードを用意しng-複数のngリピートをクリック:

https://jsfiddle.net/pegla/2e4w3yuo/10/ だから、$ scopeを返す関数は必要ありません。あなたのコードにどこかで問題があるようですが、もっとコードを書いて、どこかに置いておいて助けてくれるかもしれません。

+0

okもっと説明しようとします。オブジェクトにng-repeatsが多数入れられていると、nc-clickが機能しなくなります。私は約6を持っています:ここで参照してください:stackoverflow.com/questions/46513069/...私は問題を修正 - 私はちょうどなぜそれが動作する海岸。 関数を直接呼び出すbtwは機能しません。完全なコードではありません。 – matisa

+0

私は自分の答えを更新しました。あなたがそこにいるng-repeatsの数には関係ありませんが、$ scopeとその機能にはまだアクセスできます。 – pegla

関連する問題