기본 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...";
};
});
결과보기는 다음과 같습니다
을 그래서 당신이 볼 수 있듯이, 함수가 범위에 존재하지만 클릭 이벤트가 발사되지 않고, 내가 오류를하지 않습니다.
언젠가는 온라인에서 해결책을 찾고자했지만 찾을 수 없으므로 도움이 될 것입니다.
추가로 문제를 조사한 후에 이벤트 함수 (importLotteries)가 범위에서 정의되지 않았지만 범위 값이 올바른 함수 대신 문자열로 값을 변경할 때 나타납니다.
말아야 HanletEscaño 없음 @. 그가 사용하지 않는 controllerAs 구문을 사용하는 경우에만 접두어를 추가합니다. 그러면 $ scope로 지정할 필요가 없을 것입니다. 샤이, 발포하지 않는다는 것을 어떻게 아나요? 그것에 브레이크 포인트를 설정 했습니까? – matmo
@Shai ocLazyLoad 문제는 어떻게 알 수 있습니까? ocLoazyLoad로 파일을로드하는 것보다 먼저 파일 (lotteriesService.js, lotteries.js)을로드하려고 했습니까? – Saad
@matmo, 예 중단 점을 설정하고 실행되지 않은 경고 명령을 추가했습니다. –