Estoy teniendo problemas es este matrimonio de 2 aparentemente poderosos marcos. Parece que la mayoría de cosas que se pueden hacer por 1 se puede hacer por 2.Cómo utilizar mejor los dos? ¿Existen patrones de pensamiento?
Tomar un ejemplo básico de una aplicación CRUD —
Puedo escribir una ruta mysite/listnames que se asigna a un controlador en el juego! y esto hace que una plantilla con el código —

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

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

Nota que el principal es un típico arranque de la plantilla.
Sin embargo, ahora la salida esto produce que parece ser de ninguna utilidad para el Angular si digo que quiero agregar un cuadro de entrada para filtrado de estos nombres, o me quiere hacer nada con ellos.
¿Qué es una típica forma de proceder?
La base de la cosa parece ser-

1) ¿cómo pasar los datos que llegan después de la representación de la plantilla por Jugar a angular para su posterior uso en el clientside.

2) Es recomendable en absoluto el uso de estos dos marcos juntos por un gran nivel de aplicación que involucran un objeto matemático orientado backend + servidor, y una muy intensivo de la interfaz de usuario en el frontend?

  • Tenga en cuenta, Angular cachés de las plantillas por defecto, por lo que la reproducción dinámica de contenido no tiene sentido.

1 Comentario

  1. 45

    Hay muchas maneras que usted puede combinar los dos marcos. Todo depende de cuánto te quieras involucrar a cada uno de ellos. Por ejemplo, su Play 2 aplicación sólo puede servir a petición JSON/respons de un lado(lado del servidor) y AngularJS haría que todas las otras cosas desde el lado del cliente. Teniendo en cuenta su ejemplo para CRUD básicos de la aplicación :

    1. Una Play 2 controlador:

      def getNames = Action {
      
        val names = List("Bob","Mike","John")
        Ok(Json.toJson(names)).as(JSON)
      
      }
    2. Su Juego de raíz: la

      GET /getNames controllers.Application.getNames

    3. un AngularJs controlador:

      app.controller('NamesCtrl', function($scope) {
          //get names using AngularJS AJAX API  
          $http.get('/getNames').success(function(data){
              $scope.names = data;
          });
      });
    4. Nuestro 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>

    De esta manera completamente independiente de las preocupaciones, para su cliente, no importa el lado del servidor se implementa, lo único que necesitas es válido JSON como una respuesta. Se considera una buena práctica.

    Pero, por supuesto, usted puede hacer la mayor parte de tu código HTML de Play 2 y uso AngularJS específicos para algunas cosas cuando sea necesario. Todo depende de que la concepción que usted elija para su aplicación.

    …¿cómo pasar los datos que llegan después de la representación de la plantilla por
    Jugar a angular para su posterior uso en el clientside?

    No creo que es una buena idea, pero seguramente puede hacerlo usando ngInit directiva como esta:

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

    y usted tendrá angular_message en el scope inicializado con @message valor de Play 2 plantilla.

    Es aconsejable en absoluto el uso de estos dos marcos juntos por un
    gran nivel de aplicación que involucran un objeto matemático orientado backend +
    servidor, y una muy intensivo de la interfaz de usuario en el frontend?

    Desde mi punto de vista, sí, se trata de dos grandes marcos y trabajar perfectamente en concierto.

    • Por favor podría ampliar por qué crees que el uso de ngInit no es una buena idea? Gracias
    • Sí, también la curiosidad sobre sus pensamientos en cuanto a por qué ngInit es menos preferible
    • También consulte typesafe.com/activator/template/angular-seed-play (Puede ser que ya hayas empezado a) pero para otros que tropiezan en este hilo.
    • Gracias por compartir esto. Yo también quería probar el Juego (en el lado del Servidor) y AngularJs (En el Lado del Cliente)
    • Exactamente esto. Sin embargo, la segunda opción no se aplica a la mayoría de las veces…

Dejar respuesta

Please enter your comment!
Please enter your name here