Я создаю общее приложение для обмена сообщениями с бэкэндом, используя laravel и angular js, у меня есть переменная (с именем полученная) (которая показывает общее количество непрочитанных новых сообщений) в моем контроллере панели управления (который расширяет базовый контроллер), который определяется следующим образом:
Контроллер панели приборов:
var $data = array(); public function dashboardData(){ $toReturn = array(); $toReturn['siteTitle'] = $this->data['panelInit']->settingsArray['siteTitle']; //------other things-----------// $toReturn['stats'] = array(); //------some other things-----------// $toReturn['stats']['recieved'] = messagesList::where('userId',$this->data['users']->id)->where('messageStatus',1)->count(); } return json_encode($toReturn); }
Я использую угловое значение для передачи данных / переменных / передачи … следуя моим моментальным снимкам углового кода: –
Routes.js
skyla.config(function($routeProvider,$locationProvider) { $routeProvider.when('/', { templateUrl : 'templates/main.html', controller : 'dashboardController' })
app.js
skyla.controller('mainController',function(dataFactory,$rootScope,$route,$scope) { var data = $rootScope.dashboardData; $scope.phrase = $rootScope.phrase; $scope.dashboardData = data; $rootScope.phrase = data.language; $scope.phrase = data.language; }
Переменная (полученная) отображается в моем основном (индекс / default / home / what you call it) html-шаблоне Laravel с использованием углового {{}} синтаксиса следующим образом:
HTML (для шаблона Main.html)
<-------------some things--------------------------> <div class="counter"> <div class="informational">{{dashboardData.stats.recieved}}</div> </div> <-------------some other things-------------------------->
и он успешно показывает результат ….
но я хочу показать эти же данные в layout.blade.php, которые я использую для основных целей макета, так что количество полученных новых сообщений всегда появляется в заголовке навигатора для каждого пользователя …
Я использую ту же структуру html в layout.blade.php (directory: / app / views) с угловым {{dashboardData.stats.recieved}} синтаксисом как:
HTML (для Blade Blade)
<body ng-app="skyla" ng-controller="mainController"> <-------------some things--------------------------> <div class="nav"> <div class="informational">{{dashboardData.stats.recieved}}</div> </div> <-------------some other things--------------------------> </body>
но я получаю ошибки Undefined Constant: dashboardData и undefined Variable …
Ниже приводится обзор моих маршрутов Laravel.php: –
routes.php
Route::group(array('prefix'=>'/','before'=>'auth.Ui|auth.token|api.csrf'),function(){ Route::get('/','DashboardController@index'); Route::get('/dashboard','DashboardController@dashboardData'); Route::get('/dashboard/baseUser','DashboardController@baseUser'); //-------------some things-------------// Route::post('/dashaboard','DashboardController@dashaboardData');
Я совершенно новый на ларавеле в целом с угловым, я не уверен, передавать ли переменную значение в макет balde с php или угловым, и это будет безопасная и практичная практика …
Я наткнулся на «view :: share» и «view: make» (я попытался: return view («layout», ['dashboardData' => $ toReturn]);), но не совсем понял, как сделать это идеально и безопасно без единой ошибки …
У меня также есть настройка библиотеки в "/app/libraries/initiation.php", которая отражает некоторые данные в layout.blade.php …
Мой вопрос
Что бы я сделал в самой простой, но правильной практике, чтобы использовать угловой {{dashboardData.stats.recieved}} синтаксис в layout.blade.php без ошибок «Неопределенная константа» и «неопределенная переменная» …? ?? Пожалуйста, объясните, скажите мне, нужна ли вам дополнительная информация … Я собираю эту работу между ними, где бывший разработчик оставил работу незавершенной …