Как использовать AngularJS в файле .php при рендеринге Laravel

0

Я новичок в laravel и AngularJS. Я пытаюсь отобразить представление, которое является файлом php. Файл.php визуализируется, но выражение AngularJS внутри него не оценивается.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" >
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js">     </script>
<script src='public/AngularSorter.js'></script>
<script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js"> </script>
</head>



<body ng-app = 'store'>
<div ng-controller ='SorterController as sorter'>
 <p>
   {{ 4+4 }}

 </p>
</div>
</form>
</body>
</html>

маршрут похож на этот

Route::get('/', function () {
 return view('Home');
  });

Я что-то упускаю? Я попытался переименовать php файл в.html, но он не работает. почему не может визуализировать файл.html?.

Я получаю вывод как {{4 + 4}} вместо 8.

  • 0
    Если вы просматриваете источник на странице, он все еще говорит {{4 + 4}}, он говорит 8 или ничего не говорит? Laravel blade и angularjs используют один и тот же синтаксис, поэтому вам придется изменить один из двух.
  • 0
    Буду признателен, если вы выберете ответ, когда решите свою проблему. Если вам нужна дополнительная помощь, чтобы понять ответ, дайте мне знать! Я здесь, чтобы помочь :)
Теги:
laravel-5

2 ответа

2
Лучший ответ

Laravel Blade и AngularJS используют один и тот же синтаксис для обработки переменных, {}. Чтобы этого избежать, вам нужно либо изменить синтаксис для лезвия, либо изменить синтаксис для AngularJS. Подробности здесь.

Изменение синтаксиса AngularJS:

  var sampleApp = angular.module('sampleApp', [], function($interpolateProvider) {
    $interpolateProvider.startSymbol('<%');
    $interpolateProvider.endSymbol('%>');
});

- или -

Изменение синтаксиса Blade Laravel:

// You may place this code anywhere it is executed each request. Some people have used routes.php
Blade::setContentTags('<%', '%>');        // for variables and all things Blade
Blade::setEscapedContentTags('<%%', '%%>');   // for escaped data

Кроме того, представление должно быть.blade.php, а не.html. Это стандарт для всех файлов с лезвиями (просмотр). Документация здесь: http://laravel.com/docs/master/blade

  • 0
    Я попробовал ваш трюк, но результат все тот же, что и "{{4 + 4}}.
  • 0
    Желаете ли вы предоставить веб-ссылку на страницу? Я мог бы, вероятно, отладить его довольно быстро, если бы мог прочитать консоль JS и увидеть код.
Показать ещё 2 комментария
0

Проблема была решена путем переупорядочения тегов скриптов. тег Angular script должен быть помещен в начале, а затем должны быть включены самозаписываемые файлы javascript.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню