- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
原代码如下:
(function() {
angular.module('test', ['ngRoute'])
.config(function($routeProvider) {
$routeProvider
.when('/test', {
templateUrl: '/templates/test.html',
controller: 'testCtrl'
})
.when('/test2', {
templateUrl: '/templates/test2.html',
controller: 'test2Ctrl'
})
.otherwise({
redirectTo: '/test'
});
});
})();
//ANOTHER FILE
(function() {
angular.module('test')
.controller('testCtrl', function($scope) {
$scope.name = "test";
})
.controller('test2Ctrl', function($scope) {
$scope.name = "test2";
});
});
没有错误,但模板中显示的所有内容都是 {{name}}
而不是范围中定义的内容。
然后我尝试将 Controller 移动到另一个模块并将依赖注入(inject)它。有趣的是,即使 Controller 移动到一个单独的模块它也不会工作:
(function () {
angular.module('test2', []);
angular.module('test', ['ngRoute', 'test2']);
})();
//ANOTHER FILE
(function() {
angular.module('test')
.config(function($routeProvider) {
$routeProvider
.when('/test', {
templateUrl: '/templates/test.html',
controller: 'testCtrl'
})
.when('/test2', {
templateUrl: '/templates/test2.html',
controller: 'test2Ctrl'
})
.otherwise({
redirectTo: '/test'
});
});
})();
//ANOTHER FILE
(function() {
angular.module('test2')
.controller('testCtrl', function($scope) {
$scope.name = "test";
})
.controller('test2Ctrl', function($scope) {
$scope.name = "test2";
});
});
事实上,在这一个中它抛出了找不到 Controller 的错误。
据我所知,这是因为配置 block 运行的性质,以及它在注册 Controller 之前的运行方式。
我解决这个问题的一种方法是将 Controller 和模板移到指令中,然后使用指令本身作为模板。
(function() {
angular.module('test')
.config(function($routeProvider) {
$routeProvider
$routeProvider
.when('/', {
template: '<test></test>'
})
.when('/test2', {
template: '<test2></test2>'
})
.when('/test3', {
template: '<test3></test3>'
})
.otherwise({
redirectTo: '/'
});
});
})();
我想知道当您的 Controller 位于单独的文件中时,是否还有其他人可以支持将 Controller 放入路由器。
最佳答案
您的 Controller 文件中缺少一个 ()
自执行函数 (IIFE)。
//ANOTHER FILE
(function() {
angular.module('test2')
.controller('testCtrl', function($scope) {
$scope.name = "test";
})
.controller('test2Ctrl', function($scope) {
$scope.name = "test2";
});
})(); //<-- added here
关于javascript - 在位于单独文件中的 $routeProvider 路由中定义 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30669795/
我刚刚开始学习 AngularJS,但我多次注意到同样的事情,当我们开始用 AngularJS 编写函数时,我注意到有些人像这样定义他们将要使用的函数 var mainApp = angular.mo
我遇到了一点挑战,还没有找到解决方案。当我尝试了一些事情时,我正在请求你的帮助,所以可能有人可以引导我走向正确的方向。 我在 AngularJS 中有一个 routes.js。我正在使用 $route
我正在尝试实现 named routes ,所以我不必编写整个路径(经常更改)。 我在想我可以写一个服务来返回定义的路由列表和一个将对象转换为路由的过滤器 使用示例如下所示: Click here!
AngularJS documentation表示 ngRoute $routeProvider 有一个 reload 方法。 reload() Causes $route service to re
我正在尝试了解 AngularJS 中的路由如何工作,以制作一个小应用程序,允许用户登录并在实时提要中撰写评论。然而,路线的整个概念对我来说有点模糊,我无法正确理解这一点。 我的标准index.htm
我在grails应用程序中使用angularJS。在此之前,我尝试了互联网上的样本。我试图在我的主 View 中将angularJS $ routeProvider用于部分 View 。我的工作流程如
所以我的网站并不是 100% 都是“由 AngularJS 提供支持”,其中一些只是简单的静态 HTML,比如登陆页面或面向内容的内容,这是简单的 HTML,原因很明显。 我似乎可以获得正常导航的链接
我正在使用 this Angular 路由教程。这是它给出的使用 resolve 的示例: $routeProvider .when("/news", { templateUr
我有一个非常简单的要求。 我有 3 个用户 Angular 色: 猫用户 LICUSER 所有用户 我在 $rootScope.userRole 变量中拥有用户 Angular 色的值。 我在 Ang
我有两条路线通向相同的 View 和 Controller (即我只是传入一个 id 以在 $routeParams 中访问并在其上执行 Controller 逻辑): $routeProvider
我已经添加了这样的脚本 我在我的 test.js 中做了这个 var app = angular.module('MyApp', ['ngRoute']).config
我已经尝试了几种不同的方式,我将尝试使用所有不同的方式重定向到不同的页面,但所有这些方式都出现 404 错误。 index.html 这个页面没问题,根正在渲染: You are using
有没有办法编写一个方法来解析即将到来的 $location.path 并加载特定的 html 模板或应用 $route。目前,我的应用程序有这个长长的“时间”列表,完成后将增加一倍或三倍。 .con
我已阅读与同一问题相关的帖子并交叉验证了我的代码,但问题仍然存在。 以下是我的index.html文件 Webs
我正在尝试编写 Angular.js 教程。但我想我没有正确进行路由。我已正确遵循文档,但是当我单击超链接时,angular 不会路由到指定的 html。请帮帮我。我是 Angular 的新手。提前致
我有一个问题和疑问 我的客户端使用: 以及以下脚本: 我的 routProvider 是: angular.module('myApp', []). c
我正在使用 USB 设备构建一个 chrome 应用程序。在我的主要 app.js 中,我希望始终检查设备何时添加/删除并更改 url。 angular.module('rfApp', [ '
如果 sessionStorage.logged 设置为 true,我想将 mypage 重定向到主页。下面是我的代码。为什么我下面的代码不起作用。 因为我是 angularjs 的新手,所以我不知道
我有一个应用程序,我没有使用路由提供程序,但我仍然想对更改的哈希值采取行动。当我手动更新 URL 而不是链接时, Controller 中的普通 window.onhashchange 起作用: Li
我的 app.js 中有以下 2 条路线文件,出于某种原因,我不知道何时尝试导航到 /clients/new-invoice我看到了 /clients/:clientID路线和模板。我可以转到正确页面
我是一名优秀的程序员,十分优秀!