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

101
10

Я новичок в 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.

спросил(а) 2021-01-19T16:59:05+03:00 8 месяцев назад
1
Решение
79

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

ответил(а) 2021-01-19T16:59:05+03:00 8 месяцев назад
46

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

ответил(а) 2021-01-19T16:59:05+03:00 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема