2016-06-05 6 views
3

기본 Angular.js 앱에 ocLazyLoad를 사용하여 애플리케이션 파일을로드했습니다. 나는 sbAdminApp 템플릿의 골격을 사용하고 있습니다.ng-click 이벤트가 ocLazyLoad와 작동하지 않습니다.

내 문제는 ng-click 이벤트로 템플릿을 사용할 때 클릭 이벤트가 발생하지 않는다는 것입니다. 뷰에 함수의 내용을 출력 할 때 범위의 문제가 아닙니다. ocLazyLoad을 사용하여 파일을로드하기위한

: 여기

내 코드의 일부입니다

$stateProvider.state('dashboard.importLotteries', { 
    templateUrl: '/Scripts/app/views/importLotteries.html', 
    url: '/importLotteries', 
    controller: 'LotteriesCtrl', 
    resolve: { 
     loadMyFiles: function ($ocLazyLoad) { 
      return $ocLazyLoad.load({ 
       name: 'sbAdminApp', 
       files: [ 
        '/Scripts/app/scripts/services/lotteriesService.js', 
        '/Scripts/app/scripts/controllers/lotteries.js' 

       ] 
      }) 
     } 
    } 
} 

이것은 importLotteries.html 템플릿 파일입니다

<!-- /.row --> 
<div class="row"> 
    <div class="col-lg-12"> 
     <div class="panel panel-default"> 
      <div class="panel-heading"> 
       Import Lotteries 
      </div> 
      {{importLotteries.toString()}} 
      <div class="panel-body"> 
       <input type="button" ng-click="importLotteries()" value="Import"/> 

       <span ng-model="importStatus"> 
       </span> 
      </div> 
     </div> 
      <!-- /.panel --> 
     </div> 
    <!-- /.col-lg-12 --> 
</div> 

이 컨트롤러의입니다 코드 :

'use strict'; 
angular.module('sbAdminApp') 
    .controller('LotteriesCtrl', function ($scope, lotteriesService) { 

     $scope.importLotteries = function() { 

      alert("importing"); 
      $scope.importStatus = "Loading..."; 
     }; 

    }); 

결과보기는 다음과 같습니다

enter image description here

을 그래서 당신이 볼 수 있듯이, 함수가 범위에 존재하지만 클릭 이벤트가 발사되지 않고, 내가 오류를하지 않습니다.

언젠가는 온라인에서 해결책을 찾고자했지만 찾을 수 없으므로 도움이 될 것입니다.

추가로 문제를 조사한 후에 이벤트 함수 (importLotteries)가 범위에서 정의되지 않았지만 범위 값이 올바른 함수 대신 문자열로 값을 변경할 때 나타납니다.

+0

말아야 HanletEscaño 없음 @. 그가 사용하지 않는 controllerAs 구문을 사용하는 경우에만 접두어를 추가합니다. 그러면 $ scope로 지정할 필요가 없을 것입니다. 샤이, 발포하지 않는다는 것을 어떻게 아나요? 그것에 브레이크 포인트를 설정 했습니까? – matmo

+0

@Shai ocLazyLoad 문제는 어떻게 알 수 있습니까? ocLoazyLoad로 파일을로드하는 것보다 먼저 파일 (lotteriesService.js, lotteries.js)을로드하려고 했습니까? – Saad

+0

@matmo, 예 중단 점을 설정하고 실행되지 않은 경고 명령을 추가했습니다. –

답변

0

링크에 ng-href 또는 href를 첨부하면 해고됩니다.

<input type="button" ng-click="importLotteries()" ng-href='#' value="Import"/> 

출처 :

[1] Angular ng-click with call to a controller function not working

+1

하지만 그는 링크를 사용하지 않지만 입력은 href 속성이나 ng-href를 가져서는 안됩니다. –