2017-11-29 1 views
1

나는 전에 this question을 물었습니다. 그러나 제 질문은 JavaScript에서 직접 abp.services 메서드를 사용하는 것에 관한 것입니다.ASP.NET 웹 양식의 JavaScript에서 abp.services 사용

가정하자 내가 가진 :

public interface ISecurityAppService : IApplicationService 
{ 
    List<PacsUser_C_Extented> GetAll(); 
} 

public class SecurityAppService : ApplicationService, ISecurityAppService 
{ 
    public List<PacsUser_C_Extented> GetAll() 
    { 
     // ... 
     return allUsers; 
    } 
} 

모든 보일러 서비스로 잘 등록됩니다

public class Global : AbpWebApplication<ImmenseWebModule> 
{ 
    protected override void Application_Start(object sender, EventArgs e) 
    { 
     base.Application_Start(sender, e); 
    } 
} 

ASP.NET Boilerplate 문서가 말했듯이, 당신을 자동 생성 서비스를 사용 할 수 있도록 귀하의 페이지에 필요한 스크립트를 포함해야합니다.

<script src="~/Abp/Framework/scripts/libs/angularjs/abp.ng.js"></script> 
<script src="~/api/AbpServiceProxies/GetAll?type=angular"></script> 

두 번째 줄은 angular 컨트롤러를 사용 말한다,하지만 난으로 변경 :

<script src="~/api/AbpServiceProxies/[email protected](Clock.Now.Ticks)">script> 

... 아직 아무것도 작동하지 않습니다.

내가 ASP.NET 웹 폼의 자바 스크립트 코드에서 getAll를 사용하려면

, 그것은 저를 제공합니다

abp.service이

그래서 어떻게 getAll 사용할 수 있습니다

또는 다른 정의되지 않은 방법 SecurityAppService의 스크립트 요소 <script>...</script> - 각도가 아닌가요?

미리 감사드립니다.

내가 각도 컨트롤러와 같은 MVC 부분보기 사용 업데이트

: 그 기능을 사용할 수 있어요

(function() { 
    var app = angular.module('app'); 
    var controllerId = 'sts.views.security.list'; 
    app.controller(controllerId, [ 
     '$scope', 'abp.services.remotesystem.security', 
     function ($scope, securityService) { 
      var vm = this; 
      vm.localize = abp.localization.getSource('ImmenseSystem'); 
      vm.users = []; 
      vm.refreshUserList = function() { 
       abp.ui.setBusy(// Set whole page busy until getTasks completes 
        null, 
        securityService.getAll().success(function (data) { 
         vm.users = data; 
         abp.notify.info(vm.localize('UserListLoaded')); 
        }) 
       ); 
      }; 
      vm.refreshUserList(); 
     } 
    ]); 
})(); 

합니다. 그러나 ASP.NET Web Form 페이지의 JavaScript에서 사용하고 싶습니다.

+0

'abp.service is not defined '→'abp.services'에서's'를 잊어 버렸습니까? – aaron

+0

@arron 's'을 놓쳤다. 나는'abp.services'을 시도했다. – Aria

+0

콘솔에 아무런 오류가 없지만 마침내 해결했다. – Aria

답변

0

마지막으로 나는 다음 단계로 간단한 방법으로 그것을 해결을 볼 수abp.services.remotesystem.security 쓰기

1 실행 프로젝트와 그 상용구를 사용 Angular and Partial View (MVC) 과 같은 업데이트 서비스를 제공합니다.

2 실행 후보기로 리디렉션 한 후 View page source으로 이동하여 종속성 스크립트를 참조하십시오.

<script src="Scripts/jquery-2.2.0.min.js"></script> 
<script src="Scripts/jquery-ui-1.11.4.min.js"></script> 
<script src="Scripts/jquery.validate.min.js"></script> 
<script src="Scripts/modernizr-2.8.3.js"></script> 
<script src="Abp/Framework/scripts/utils/ie10fix.js"></script> 
<script src="Scripts/json2.min.js"></script> 
<script src="Scripts/bootstrap.min.js"></script> 
<script src="Scripts/moment-with-locales.min.js"></script> 
<script src="Scripts/jquery.blockUI.js"></script> 
<script src="Scripts/toastr.min.js"></script> 
<script src="Scripts/sweetalert/sweet-alert.min.js"></script> 
<script src="Scripts/others/spinjs/spin.js"></script> 
<script src="Scripts/others/spinjs/jquery.spin.js"></script> 
<script src="Scripts/angular.min.js"></script> 
<script src="Scripts/angular-animate.min.js"></script> 
<script src="Scripts/angular-sanitize.min.js"></script> 
<script src="Scripts/angular-ui-router.min.js"></script> 
<script src="Scripts/angular-ui/ui-bootstrap.min.js"></script> 
<script src="Scripts/angular-ui/ui-bootstrap-tpls.min.js"></script> 
<script src="Scripts/angular-ui/ui-utils.min.js"></script> 
<script src="Abp/Framework/scripts/abp.js"></script> 
<script src="Abp/Framework/scripts/libs/abp.jquery.js"></script> 
<script src="Abp/Framework/scripts/libs/abp.toastr.js"></script> 
<script src="Abp/Framework/scripts/libs/abp.blockUI.js"></script> 
<script src="Abp/Framework/scripts/libs/abp.spin.js"></script> 
<script src="Abp/Framework/scripts/libs/abp.sweet-alert.js"></script> 
<script src="Abp/Framework/scripts/libs/angularjs/abp.ng.js"></script> 
<script src="Scripts/jquery.signalR-2.2.1.min.js"></script> 
<script src="api/AbpServiceProxies/GetAll?v=636475780135774228"></script> 
<script src="api/AbpServiceProxies/GetAll?type=angular&amp;v=636475780135774228"></script> 
<script src="AbpScripts/GetScripts?v=636475780135774228" type="text/javascript"></script> 

및 사용과 같은 getAll 방법 : 나는 중요한 직원이 자동 생성 서비스를 사용할 생각

<script> 
    var securityService = abp.services.remotesystem.security; 
    securityService.getAll().done(function (data) { 
     for (var i in data) 
      console.log(data[i].username); 
    }); 
</script> 

은 다음과 같습니다

3

는 한 페이지에 아래의 스크립트 소스를 복사
<script src="api/AbpServiceProxies/GetAll?v=636475780135774228"></script> 
<script src="api/AbpServiceProxies/GetAll?type=angular&amp;v=636475780135774228"></script> 
<script src="AbpScripts/GetScripts?v=636475780135774228" type="text/javascript"></script> 

감사합니다.

+0

좋아요,하지만 일부 스크립트는 필요하지 않다고 생각합니다. – Aria

+0

''만 필요합니다. 그러나 당신은 그것이 작동하지 않으며 오류가 없다고 말합니다. – aaron

0

당신은 abp.services.remotesystem.security를 ​​주입하고 있습니다. 이 네임 스페이스를 사용하여 함수에 액세스 할 수 있습니다. 열린 크롬 콘솔 및 기능