2017-02-06 14 views
1

私のコードの構造は、その内部にリストコンポーネントを持つ親「コンポーネント」を持っています。私は、リストコンポーネント内のアイテムの編集をクリックして、そのアイテムを親コンポーネントの関数に戻すようにします。 editMember機能内部パラメータはnullとして渡されている指令をコントローラに戻す

let ParentDirective =() => { 
    "use strict"; 
    return { 
     restrict: 'A', 
     scope: { 
      visible: '<', 
      members: '=' 
     }, 
     template: (() => { 
      return ` 
       <div> 
        <div list-directive 
         members="members" 
         edit="methods.editMember(member)"> 
        </div> 
       </div> 
      `; 
     })(), 
     controller: ($scope) => { 
      $scope.methods = { 
       editMember: (member) => { 
        console.log(member) //member is null 
       } 
      }; 
     } 
    } 
}; 

export default {directive: ParentDirective, name: 'parent'}; 



let ListDirective =() => { 
    "use strict"; 
    return { 
     restrict: 'A', 
     scope: { 
      members: '<', 
      editMember: '&edit' 
     }, 
     template: (() => { 
      return ` 
       <div> 

        <div ng-repeat="member in members"> 
         {{member.name}} 
           <button type="button" 
             ng-click="editMember(member)"> 
            <i class="ion-edit"></i> 
           </button> 
         </div> 
        </div> 

       </div> 
      `; 
     })(), 
     controller: ($scope) => { 
      } 
    } 
}; 

export default {directive: ListDirective, name: 'list'}; 

答えて

1

あなたの最善の策は、hereを見てください、あなたは角2

を使用している場合には、子と親のコンポーネント間の対話にEventEmitterを使用することですそれを行う方法の詳細については、あなたが名前の何でもそれを呼び出す必要が

<button type="button" 
    ng-click="editMember({member: member})"> 
    <i class="ion-edit"></i> 
</button> 

注:ハッシュとしてそれを渡す必要があるため

あなたが書き込み軌道に乗っている角度1を使用している場合は、単にng-click="editMember({member: member})"ng-click="editMember(member)"を変更親のあなたの議論、例えばあなたはこのようなあなたの親を定義した場合:

edit="methods.editMember(temp)" 

次に、あなたはそれが好きで渡す必要があります。

<button type="button" 
    ng-click="editMember({temp: member})"> 
    <i class="ion-edit"></i> 
</button> 
+0

ありがとうございました!ハッシュは欠けている部分だった – erichardson30

関連する問題