2016-08-23 7 views
0

以前に定義されたIonicモーダルを開くために関数呼び出しを呼び出す必要がありますが、cellTemplateコール内で動的に駆動されるng-click呼び出しがあります。関連するスコープ関数呼び出しは決して起動しません。セルテンプレートng-clickアクションが発生しない

問題がスコープ範囲、または関数呼び出しの構築メカニズムに問題があるかどうかはわかりません。何が原因である可能性がありますか?

l
+0

誰かがあなたを助けたら回答を受け入れますか? –

答えて

0

作成されたボタンをクリックできないという1つの問題は、$ scopeがまだコンパイルされたelemtを受け取っていないためです。

$scope.makeEditButtons = function (gridName) { 
    return $compile("<i class='icon ion-gear-a' ng-click='openEdit" + gridName + "Modal(row.entity)' title='Edit' style='cursor:pointer;'></i>&nbsp;&nbsp;<i class='icon ion-alert' ng-click='openDelete" + gridName + "Modal(row.entity)' title='Delete' style='cursor:pointer;'></i>")($scope); 
}; 

次の関数を使用して、右クリックイベントの前にそれを呼び出す関数を変更します。

$scope.applyToview=function(){  if ($scope.$root.$$phase != '$apply' && 
      $scope.$root.$$phase != '$digest') { 
      $scope.$apply(); 

     } 
    } 

幸運。

0

まず、appScopeProviderのクリックイベントを処理する関数を宣言する必要があります。 次に例

cellTemplate

でそれを呼び出す:

vm.gridOptions = { 
      columnDefs: [ 
       {field: 'edit', displayName: "Actions", cellTemplate: '<span ng-click="grid.appScope.clickHandler(row)">Edit</span>'} 
      ], 
     ................ 
      appScopeProvider: { 
        clickHandler: onCellClick 
       } 
     } 
     function onCellClick(row){ 
     console.log(row.entity); 
     } 

はそれが役に立てば幸い!

0

まず、cellTemplateはそれだけでなければなりません。

cellTemplate: '<i class="icon ion-gear-a" style="text-decoration:underline; color: blue; cursor:pointer;" ng-click="grid.appScope.openDeleteCustomCostModal(row)">{{COL_FIELD}}</i><i class='icon ion-alert' ng-click="grid.appScope.deleteCostModal(row)" title='Delete' style='cursor:pointer;'></i>' 

これは、クリックすると2つの機能を呼び出すようになります。

関連する問題