Я новичок в 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.
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
Проблема была решена путем переупорядочения тегов скриптов. тег Angular script должен быть помещен в начале, а затем должны быть включены самозаписываемые файлы javascript.