“未定义的常量/变量”错误使用带有 Angular JS的 Laravel...无法在边栏选项卡中显示变量


“Undefined Constant/Variable” Error using Laravel with Angular JS…Unable to show variable in blade

我正在使用 laravel 和 angular js 构建一个常见的后端办公消息传递应用程序,我的仪表板控制器(扩展基本控制器(中有一个变量(名为 received((显示未读新消息的总数(,定义如下:

仪表板控制器:

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);
}

我正在使用角度到数据/变量传输/传递...以下是我的角度代码快照:-

路线.js

skyla.config(function($routeProvider,$locationProvider) {
$routeProvider.when('/', {
  templateUrl : 'templates/main.html',
  controller  : 'dashboardController'
})

应用.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;

}
变量(接收(通过使用

角度{{}}语法显示在Laravel的主要(索引/默认/主页/无论您怎么称呼它(html模板中,如下所示:

HTML(用于主模板.html模板(

  <-------------some things-------------------------->
  <div class="counter">
  <div class="informational">{{dashboardData.stats.recieved}}</div>
  </div>
  <-------------some other things-------------------------->

它成功地显示了输出。

但我想在 layout.blade 中显示相同的数据.php我将其用于基本布局目的,以便收到的新消息的数量始终出现在每个用户的导航栏标题中......

我在 layout.blade.php (directory:/app/views( 中使用了相同的 html 结构,角度 {{dashboardData.stats.recieved}} 语法为:

HTML(用于布局边栏选项卡(

  <body ng-app="skyla" ng-controller="mainController">
  <-------------some things-------------------------->
  <div class="nav">
  <div class="informational">{{dashboardData.stats.recieved}}</div>
  </div>
  <-------------some other things-------------------------->
  </body>

但是我收到"未定义的常量:仪表板数据"和"未定义的变量"错误...

以下是我的Laravel路线的一瞥.php:-

路线.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');

我对带有角度的 laravel很陌生,我不确定是将变量值传递给带有 php 或角度的布局秃头,这将是安全和可行的做法......

我偶然发现了"view::

share"和"view:make"(我试过:return view('layout', ['dashboardData' => $toReturn](;)事情,但不太明白如何完美安全地做到这一点而没有一个错误......

我在"/app/libraries/initiation.php"中还有一个库设置,它将一些数据反映到 layout.blade.php...

我的问题

在最

简单但最正确的实践中,我会怎么做,以便我可以在 layout.blade 中使用角度 {{dashboardData.stats.recieved}} 语法.php而不会出现错误"未定义的常量"和"未定义的变量"...???请解释一下,告诉我您是否需要更多信息...我正在接手这项工作,中间有一个前开发人员没有完成工作......

在我看来

,刀片和角度之间存在冲突,因为两者都使用了{{ }}括号。角度也有其自己的渲染视图的方式。layout.blade.php 将 {{}} 解释为自己的而不是角度。在"纯"html中,您没有这个问题,因为它是由用户端的角度渲染的。

完成您要求的最简单方法(在我看来(是将Laravel和Angular文件分开,并使用Laravel作为角度应用程序的API。因此,如果您计划开发一段时间,我会将刀片文件转换为 html 文件,以防止将来出现头痛。:)

也就是说,破解这种情况的一种方法是用刀片作为字符串回显这一行,或者用 &#123(大括号的 html 代码(交换大括号。所以基本上:

<div class="informational">&#123;&#123 dashboardData.stats.recieved  &#123;&#123 </div>