Угловая переменная js не работает с Twig

проблема

  • im с помощью шаблона twig & angular js.

контроллер

 public function testAction()
{
  $this->render('AcmeDemoBundle:abc.html.twig');
 }

код js

    var scotchApp = angular.module('scotchApp', ['ngRoute']);

 angular.module('scotchApp', [])
.config(['$interpolateProvider', function ($interpolateProvider) {
  $interpolateProvider.startSymbol('[[');
 $interpolateProvider.endSymbol(']]');
 }]);

 scotchApp.config(function($routeProvider)
{
   $routeProvider
   //route for home page
           .when('/', {
               templateUrl:'http://localhost/example/example/web/app_dev.php/home',
                controller:'mainController'

        })
        //route for the about page
                .when('/about',{
                 templateUrl:'http://localhost/example/example/web/app_dev.php/about1',
                 controller:'aboutController'

        })
         //route for the contact page
                .when('/contact',{
                 templateUrl:'http://localhost/example/example/web/app_dev.php/contact',
                 controller:'contactController'

        });
});
// create the controller and inject Angular's $scope
scotchApp.controller('mainController', function($scope) {

    // create a message to display in our view
    $scope.message = 'Everyone come and see how good I look!';
});

HTML-код

 <div class="jumbotron text-center" ng-model="test">
    <h1>About Page</h1>

    <p>{{ '{{'~ message ~'}}' }}</p>
 </div>
  • Its seems like twig is treating variable (message to be symfony rendered through test controller

  • в то время как мы не визуализировали переменную сообщения в twig через контроллер тестирования.

  • я знал, что проблема в том, что ветка конфликтует с угловой переменной js

  • поэтому я гуглил включенные изменения ,но как будто это не работает

это можно сделать с помощью синтаксиса разделения (twig / angular js)

  link : https://docs.angularjs.org/api/ng/provider/$interpolateProvider

обновление

 {% verbatim %}
  <div ng-app="scotchApp" ng-controller="aboutController">
    {{message}}
 </div>

   {% endverbatim %}
  • сейчас {{message}} печатается в браузере, angular не работает над этим случаем.

что мне нужно

    i need to render message variable to twig file through angular js 

1 ответ

  1. Angular можно смешивать с symfony, но не всегда это хорошая идея .
    В вашем примере ЮО дают

     $interpolateProvider.startSymbol('[[');
     $interpolateProvider.endSymbol(']]');
    

    Это означает, что для angular in twig необходимо использовать [[переменная]] вместо {{переменная}}