我有一个角度js文件夹结构如下所示。我使用角度ui路由器进行路由。我的问题是我在index.html中包含了HomeController.js的链接,但似乎有角度的ui路由器无法找到控制器。有解决方案吗也许是一种直接包含控制器链接而不是控制器名称的方法?
lock ("1" + "2")
{
Task.Factory.StartNew(() =>
{
var a = "1";
lock (a + "2")
{//launched immediately
}
});
Thread.Sleep(10000);
}

app/
index.html
app.js
Home/
home.html
HomeController.js
Contact/
contact.html
ContactController.js

var app = angular.module('myApp', ['ngRoute', 'ui.router'];
app.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('home', {
url: '/',
templateUrl: 'Home/home.html',
controller: 'homeController'
})
.state('contact', {
...
});
});
// working if is in same js file, not working if on different js file
app.controller('homeController', function ($scope) {
$scope.logoName = 'myLogo';
});

答案 0 :(得分:1)
使用带有UI路由器的AngularJS,每当我遇到麻烦时,我总是会尝试检查此清单。
controller.js
中包含您的index.html
文件并交叉检查您的浏览器控制台是否未记录 404 以获取此文件的GET请求。 (使用Wiredep自动执行此操作)controller
的名称在构造函数和state
定义中相同。IIFE
,请确保最后调用它。(function() {
angular
.module("app")
.controller("HomeCtrl", HomeCtrl);
function HomeCtrl() {
}
})();
Module
声明的controller
注入主bootstrap
模块定义,并交叉检查所有其他依赖项是否已解决。查看您的问题,我认为您不能直接在状态定义选项对象中包含控制器的链接。但您可以交叉检查以上所有要点,并在控制台中复制并粘贴错误。这有助于找到更快的解决方案。
在查看您最近的评论时,我认为这是因为Module
依赖性问题。点#4 。
确保指定要在其下定义控制器的模块。
如果是现有模块(即之前定义的):
angular
.module("existingModule")
.controller("HomeCtrl", function() {} )
如果是新模块
angular
.module("newModule", []) // Make sure you inject this newModule in app.js
.controller("HomeCtrl", function() {})
修改:
查看更新,您已使用ng-controller
在标记中明确指定了控制器。此div
内的任何角度表达式原型都来自bsCarouselController
,homeController
和RootScope
。