0

したがって、ng-repeat指令に問題があります。私のコードでは、データのオブジェクトの配列として格納されている親コントローラがあります。関数をng-repeatオブジェクトに渡す

私は何をしたいことは、私のディレクティブの(「人」)へのパス、親コントローラの機能である
$scope.queue = [ 
    { 
    name: 'Mark', 
    sex: 'Male', 
    age: 21 
    }, 
    {...} 
]; 

$scope.changePositionInQueue = function (currIndex, targetIndex) { 
    // move up/down person in queue 
}; 

孤立範囲と同時に「$インデックス」を使用することができ、「$最初の」、「$最後の」変数。

<person data-change-position="changePositionInQueue" data-person="person" ng-repeat="person in queue"></person> 

指令スコープ宣言:

scope: { 
person: '=', 
changePosition: '&' 
} 

問題は、私はNGリピートループ内で分離されたスコープを作成するとき、私はNG-繰り返し特性を失うということです。一方、ng-repeatでデフォルトのスコープを作成するときに、必要なすべてのプロパティにアクセスできますが、親関数を使用することはできません。

+0

そうでもとしてスコープ上のものを渡しますあなたの隔離範囲の指示にパラメータを入力してください – harishr

+0

回答ありがとうございます、どうすればいいですか? personとしてのパラメータ渡し$ indexや$ indexは、ディレクティブの子スコープで私に 'undefined'を与えます。 – tomeks

+0

あなたのディレクティブのスコープの定義で 'index:@'のようなものがあり、その後 'htmlの' data-index = "$ index"は – harishr

答えて

0

これはあなたの挑戦に私のソリューションです:
ビューで :リンクでの直接呼び出し親関数で

<my-directive dir-func="fnc($index)" data="data" ng-repeat="data in datas"><span>{{data.id|json}}</span><br></my-directive> 

myApp.directive('myDirective', function() { 
    return { 
    //require: 'ngModle', 
    scope: { 
     data: "=", 
     dirFunc: "&" 
    }, 
    link: function(scope, elem, attr, ngModel) { 
     scope.dirFunc() // parent scope.func is called here where you get the alert 

    } 

    } 

See the Plunker for detail

+0

あなたの答えに感謝します。私は親のスコープから$ indexプロパティを取得することでそれを理解したので、私は直接助けられませんでしたが、私の関数はまだ正しく機能しませんでした。あなたの指示を見て間違いを見つけました。私は、引数に関する情報を与えずに、関数を参照によって関数に渡していました。とにかく解決された問題は、ありがとう! – tomeks

+0

助けてくれてうれしい、その目的はそのためです! :)応援! – praHoc

関連する問題