You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS与Laravel集成问题:'greetingController'控制器未注册

解决AngularJS控制器未注册报错:The controller with the name 'greetingController' is not registered

嘿,这个问题我太熟了!你这明显是控制器名称大小写不匹配导致的——AngularJS对控制器的命名是严格区分大小写的,一点都不能错。

咱们来对比下你的代码:

  • 在app.js里,你注册的控制器是驼峰命名的GreetingController:
require('angular');
var myApp = angular.module('MyApp', []);
myApp.controller('GreetingController', ['$scope', function($scope) {
  $scope.greeting = 'Hola!';
}]);
  • 但在welcome.blade.php的模板里,你写的是greetingController(首字母小写):
<div ng-app="MyApp" ng-controller="greetingController">
  @{{greeting}}
</div>

解决步骤很简单:

把模板里的控制器名称改成和注册时完全一致的GreetingController,修改后的welcome.blade.php代码如下:

<head>
  <script src="{{ asset("js/manifest.js") }}"></script>
  <script src="{{ asset("js/vendor.js") }}"></script>
  <script src="{{ asset("js/app.js") }}"></script>
</head>
<div ng-app="MyApp" ng-controller="GreetingController">
  @{{greeting}}
</div>

最后别忘了重新编译资源:

因为你用了Laravel Mix管理资源,所以运行下面的命令重新打包JS文件:

npm run dev
# 或者生产环境用 npm run prod

刷新页面后,应该就能正常显示Hola!了。

小提醒:AngularJS的控制器、指令这些名称都严格区分大小写,以后写的时候一定要注意保持注册和引用的一致性哦!

内容的提问来源于stack exchange,提问作者ralphy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:58:49