2016-06-07 2 views
0

내 AngularJS와 UI를 그리드에 대해 다음 columnDefs 있습니다취급 VAR Ctrl 키에 대한 UI를 그리드 셀 서식 NG 클릭 기능을 AngularJS와 = 컨트롤러에서이 구문

ctrl.temporaryRegGridOptions.columnDefs = [ { 
      field: 'firstName', 
      'displayName': 'First/Company Name', 
      cellTemplate: '<span ng-click="ctrl.grid.appScope.gotoRequiredState()">{{row.entity.firstName}} </span> ' 
     }, { 
      field: 'lastName', 
      'displayName': 'Surname', 
      width: '150' 
     } ] 

을 나는

ctrl.gotoRequiredState = function() { 
     alert("next State"); 
    } 

이 내가해야 할 일은 함수를 호출해야하는 셀을 클릭 할 때 뿐이다. ClicMe (http://ui-grid.info/docs/#/tutorial/305_appScope)과 비슷하다. 공식 웹 사이트에서는이 기능이 $scope으로 주어졌지만 제 컨트롤러에서는 var ctrl = this을 사용하고 있습니다. 통사론. 그 이유는 내가 ng-click="grid.appScope.gotoRequiredState()">을 부여하더라도 gotoRequiredState() 함수가 호출되지 않습니다. 그래서 나는 그것을 ng-click="ctrl.grid.appScope.gotoRequiredState()">으로 바꾸었지만 아직도 운이 없다. firstName 셀을 클릭 한 후에도 gotoRequiredState() 함수가 호출되지 않습니다. 어느 누구도이 문제를 해결할 수 있습니까?

답변

0

공유 한 문서에서 appScope가 그리드 지시문의 부모 범위라고 가정합니다. 경우 먹으 렴 경우

, 당신은

ng-click="grid.appScope.ctrl.gotoRequiredState()" 시도 할 수 있을까?

+0

나는 그것을 시도했지만 또한 작동하지 않는다. –

1

다음은 문제를 해결했습니다

ctrl.temporaryRegGridOptions.appScopeProvider = ctrl; 

cellTemplate: '<span ng-click="grid.appScope.gotoRequiredState()">{{row.entity.firstName}} </span> ' 

잘 작동합니다. 그렇지 않으면 단순히 사용

:

cellTemplate: '<span ng-click="grid.appScope.$parent.$ctrl.gotoRequiredState()">{{row.entity.firstName}} </span> ' 

appScopeProviderctrl를 지정하지 않고 잘 작동합니다. 그건 그렇고 Angularjs 1.5 + 구성 요소 아키텍처를 사용하고 있습니다.