2016-07-08 9 views
-1

Ich habe eine einfache Seite mit AngularJS. Es lädt einige Daten, füllt Auswahlfelder aus und sollte darauf reagieren, wenn Werte in diesen Auswahlfeldern ausgewählt werden.AngularJS funktioniert nicht mit PHP Slim + Twig

Es arbeitet perfekt mit direktem Link:

http://warcry.ru/codiad/workspace/jw/templates/arena-counter-picks.html

Aber es mit Slim-Routing funktioniert nicht:

http://warcry.ru/codiad/workspace/jw/public/jw/arena

Es in meiner dünnen Anwendung "jw/Arena" Route ist .

_http://warcry.ru/codiad/workspace/jw/public/index.php renders 
_http://warcry.ru/codiad/workspace/jw/templates/arena-counter-picks.html. 

Wie kann ich das beheben? Danke für Ihre Hilfe.

Edit:

Sieht aus wie ich die Ursache für dieses Problem gefunden haben. Ich benutze nicht nur Slim, ich benutze es mit Twig. Und sieht aus wie Twig Konflikte mit AngularJS, weil sie ähnliche Syntax haben.

Wie man sie dann zusammen koppelt? Oder sollte ich sie überhaupt nicht zusammen benutzen?

die Antwort gefunden: AngularJS-Twig conflict with double curly braces

+0

Kann ich wissen, welche schlanke Version verwenden Sie? –

+0

Slim 3 (spätestens). –

Antwort

0

den unten schlanken Rahmen 2 Beispiel mit AngularJS Auswahlbox versuchen, es hat für mich gearbeitet:

ich Student Namentabelle haben, von dem ich zeigen Kursteilnehmernamen in auserlesenem Kasten, also bilden Sie einen Tabellenkursteilnehmer oder irgendeine Ihre Tabelle:

meine index.html Akte mit ng-APP ist:

<html ng-app="mainApp"> 
    <head> 
     <script type="text/javascript" src="angular.min.js"></script> 
     <script type="text/javascript"> 
     var app=angular.module('mainApp',[]); 
     angular.module('mainApp').controller('myCtrl1',function($scope,$http){ 
     $http({ 
      method : "GET", 
      url : "http://localhost/em/mod.php/devicegrp", 
      headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
      }).then(function mySucces(response2) { 
      $scope.mydata2=response2.data; 
      },function myError(response2) { 
      $scope.mydata2=response.statusText; 
      }); 
     }); 

     </script> 
    </head> 
    <body ng-controller="myCtrl1"> 
    <select class="form-control" ng-options="o.id as o.studentnm for o in mydata2" ng-model="valueselected" ></select>selected:{{valueselected}} 
    </body> 
</html> 

Und mein Schlanke Rahmen 2-Datei ist wie:

<?php 
header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Methods: GET,OPTIONS,POST,PUT,DELETE'); 
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); 
require 'vendor/autoload.php'; 
$app->get('/get', function() use ($app) { 
     $sql = "select * from student"; 
     try { 
      $db = getConnection(); 
      $stmt = $db->query($sql); 
      $us = $stmt->fetchAll(PDO::FETCH_OBJ); 
      $db = null; 
      echo json_encode($us); 
     } 
     catch(PDOException $e) { 
      echo '{"error":{"text":'.$e->getMessage() .'}}'; 
     } 
     }); 
    function getConnection() { 
    $dbhost="localhost"; 
    $dbuser="root"; 
    $dbpass=""; 
    $dbname="restdb"; 
    $dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); 
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    return $dbh; 
} 

$app->run(); 

?> 

Versuchen Sie, wie dieses

0

Sieht aus wie ich die Ursache für dieses Problem gefunden haben. Ich benutze nicht nur Slim, ich benutze es mit Twig. Und sieht aus wie Twig Konflikte mit AngularJS, weil sie ähnliche Syntax haben.

Wie man sie dann zusammen koppelt? Oder sollte ich sie überhaupt nicht zusammen benutzen?