Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度部分控制器_Angularjs_Angular Ui Router - Fatal编程技术网

Angularjs 角度部分控制器

Angularjs 角度部分控制器,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我有一个角度js文件夹结构如下。我使用angular ui路由器进行路由。我的问题是我在index.html中包含了HomeController.js的链接,但angular ui router似乎找不到控制器。有解决办法吗?是否可以直接包含控制器的链接而不是控制器名称 app/ index.html app.js 家/ home.html HomeController.js 接触/ contact.html ContactController.js在使用UI路由器与AngularJS合作时,

我有一个角度js文件夹结构如下。我使用angular ui路由器进行路由。我的问题是我在index.html中包含了HomeController.js的链接,但angular ui router似乎找不到控制器。有解决办法吗?是否可以直接包含控制器的链接而不是控制器名称

app/
index.html
app.js
家/
home.html
HomeController.js
接触/
contact.html

ContactController.js
在使用UI路由器与AngularJS合作时,每当我发现自己遇到麻烦时,我总是尝试查看这个清单

  • 将您的
    controller.js
    文件包含在
    index.html
    中,并交叉检查您的浏览器控制台是否未记录404以获取此文件的GET请求。(用于自动执行此操作)
  • 确保您的
    控制器
    的名称在构造函数中以及在
    状态
    定义中相同
  • 如果您使用的是
    iLife
    ,请确保最后调用它
  • 确保声明控制器的
    模块
    已插入主
    引导
    模块定义,并交叉检查是否解决了所有其他依赖项
看看你的问题,我认为你不能直接在你的状态定义选项对象中包含控制器的链接。但您可以交叉检查以上所有要点,也可以在控制台中复制并粘贴错误。这将有助于找到更快的解决方案

看看你最近的评论,我认为这是因为
Module
依赖性问题。第四点

确保指定要在其下定义控制器的模块

如果是现有模块(即之前定义的模块):

如果是新模块

angular
  .module("newModule", []) // Make sure you inject this newModule in app.js
  .controller("HomeCtrl", function() {})
编辑:
查看您的更新,您已经使用
ng controller
在标记中显式分配了一个控制器。此
div
原型中的任何角度表达式通常继承自
bsCarouselController
homeController
RootScope

请重新检查您在ContactController.js中给出的名称,例如myApp.conroller('homeController',function(){});我敢肯定这是正确的。如果我将控制器放入app.js中,但不将控制器分离出来,那么它会起作用。您可以提供fiddle以获得更多理解,因为我认为会有一个小错误导致错误。。控制台中是否有任何错误??出现错误是因为ng控制器中的名称与stateProvider“home controller”不同,如果您通过stateProvider提供ng控制器,则无需编写ng控制器仍在尝试您的建议。如果控制器url不能直接包含。假设我在100个js文件中有100个控制器,那么我需要更新它,将100个js文件包含在main index.html上的脚本src中?不需要。您可以在一个模块和一个文件下执行。但它会变得一团糟。理想情况下,每个功能应该有一个控制器。这就是为什么我建议使用wiredep来自动化此任务的原因。很好,我通过删除ng控制器找到了解决方案
angular
  .module("existingModule")
  .controller("HomeCtrl", function() {} )
angular
  .module("newModule", []) // Make sure you inject this newModule in app.js
  .controller("HomeCtrl", function() {})