programing

결합 플레이!Framework 2.xx 와 Angular.js

telebox 2023. 3. 23. 22:37
반응형

결합 플레이!Framework 2.xx 와 Angular.js

나는 겉으로 보기에 강력한 두 개의 틀의 결혼 때문에 곤란하다.1이 할 수 있는 일은 대부분 2가 할 수 있는 것 같아요.이 두 가지를 가장 잘 활용하는 방법사고방식이 있나요?CRUD 어플리케이션의 기본적인 예를 들어보겠습니다. -- 나는 재생 중인 컨트롤러에 매핑되는 루트 mysite/list names를 쓸 수 있습니다.이것에 의해, 코드가 있는 템플릿이 렌더링 됩니다.

@(names:List[String])
@main("Welcome") {

@for( name <- names ){ 
    <p> Hello, @name </p>
}

main은 일반적인 부트스트래핑템플릿입니다.그러나, 이러한 이름을 필터링하기 위한 입력 상자를 추가하거나, 이 이름으로 어떠한 조작을 하고 싶다고 해도, 이 출력은 Angular에 도움이 되지 않는 것 같습니다.전형적인 진행 방식은 무엇입니까?기본적인 건...

1) Play에 의해 템플릿을 angular로 렌더링한 후 도착한 데이터를 클라이언트 측에서 나중에 사용할 수 있도록 전달하는 방법.

2) 수학적 객체 지향 백엔드+서버와 프런트엔드의 상당히 집약적인 UI를 포함하는 대규모 앱에서 이 두 개의 프레임워크를 함께 사용하는 것이 권장되는가?

이 두 프레임워크를 조합할 수 있는 방법은 여러 가지가 있습니다.모든 것은 당신이 그들 각각을 얼마나 부러워하고 싶은지에 달려있다.예를 들면,Play 2응용 프로그램은 한쪽(서버 측) 및 Angular에서만 JSON 요청/응답 서비스를 제공할 수 있습니다.JS는 다른 모든 것을 클라이언트 측에서 만듭니다.기본 CRUD 앱의 예를 참고하여:

  1. Play 2 컨트롤러:

    def getNames = Action {
    
      val names = List("Bob","Mike","John")
      Ok(Json.toJson(names)).as(JSON)
    
    }
    
  2. 플레이 루트:

    GET /getNames controllers.Application.getNames

  3. AngularJs 컨트롤러:

    app.controller('NamesCtrl', function($scope) {
        // get names using AngularJS AJAX API  
        $http.get('/getNames').success(function(data){
            $scope.names = data;
        });
    });
    
  4. 델의 HTML:

    <!doctype html>
    <html ng-app>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular.min.js">  </script>
    </head>
    <body>
        <div>
            <ul>
                <li ng-repeat=" name in names">{{name}}</li>
            </ul>
        </div>
    </body>
    </html>
    

이것에 의해, 고객의 클라이언트측에서는, 서버측의 실장 방법에 관계없이, 응답으로서 유효한 JSON만이 필요합니다.그것은 좋은 관행으로 여겨진다.

하지만 물론 HTML의 대부분은Play 2및 사용AngularJS필요한 경우 특정 용도로 사용할 수 있습니다.앱에 어떤 컨셉을 선택하느냐에 따라 달라집니다.

...Play를 통해 템플릿을 angular로 렌더링한 후 도착한 데이터를 클라이언트 측에서 나중에 사용할 수 있도록 전달하려면 어떻게 해야 합니까?

좋은 생각은 아닌 것 같습니다만, 반드시 다음을 사용해 주세요.ngInit다음과 같이 지시합니다.

@(message:String)
@main("Welcome") {
<div ng-init="angular_message = @message">
<h1>Hello, {{angular_message}} !</h1>
</div>

}

그리고 당신은angular_message에서scope로 초기화된.@message로부터 값을 매기다.Play 2플릿입입니니다

수학적 객체 지향 백엔드 + 서버와 프런트엔드의 상당히 집약적인 UI를 포함하는 대규모 앱에서 이 두 개의 프레임워크를 함께 사용하는 것이 권장됩니까?

제 관점에서는 두 개의 훌륭한 프레임워크가 완벽하게 조화를 이루고 있습니다.

언급URL : https://stackoverflow.com/questions/21347483/combining-play-framework-2-xx-with-angular-js

반응형