- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有些我是路由和单页 Web 应用程序的新手,但我一直在努力正确学习 Angular。然而我遇到了一些麻烦和一些奇怪的问题。我遵循了构建目录的指南,我的目录如下所示:
app/
components/
profile/
profile.html
ProfileModel.js
ProfileController.js
ProfileFactory.js
app.module.js
app.routes.js
我的主模块位于 app.module.js
中,并使用 ngRoute
和 profile.app
(配置文件的模块)注入(inject)依赖项从 ProfileModel.js
查看)。它的声明如下:
angular
.module('app', ['ngRoute', 'profile.app'])
.controller('MainController', MainController);
function MainController() {
this.message = 'This is the home page';
}
然后在我的 app.routes.js
文件中,我声明了应用程序所需的所有路由(到目前为止只有一个,即配置文件):
angular
.module('app')
.config(routeConfig);
routeConfig.$inject = ['$locationProvider', '$routeProvider'];
function routeConfig ($locationProvider, $routeProvider) {
$routeProvider
.when('/user/:user_id', {
templateUrl: '/app/components/profile/profile.html',
controller: 'ProfileController',
controllerAs: 'profile'
}
)
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
}
这是我的ProfileController.js
:
angular
.module('app.profile')
.controller('ProfileController', ProfileController);
ProfileController.$inject = ['ProfileFactory', '$routeParams'];
function ProfileController(ProfileFactory, $routeParams) {
var vm = this;
vm.user_id = $routeParams.user;
console.log($routeParams.user_id);
vm = ProfileFactory.userProfile(vm.user_id); //Gets the profile of the user and sets to to vm
}
所以我有两个主要问题。尽管我在 app.routes.js
中定义了路由,但 $routeParams.user_id
被记录为空。这很奇怪,因为我的 index.html
(包含每个 .js
文件的 HTML 文件)中有一个 ng-view
指令。这意味着一旦 Controller 及其依赖项被实例化,我应该可以立即访问路由参数。但是,当我转到http://example.com/user/1时,我没有记录任何内容(未定义)。
我的第二个问题是我将 ngRoute
作为依赖项包含在 profile.app
和我的主模块中(其中 profile.app
是依赖性)。但是,我后来从 profile.app
中删除了 ngRoute
作为依赖项,但我在 ProfileController< 中留下了
和 AngularJS 根本没有提示。这看起来很奇怪,因为依赖关系不再明确存在于 $routeParams
的注入(inject)profile.app
中。那么为什么我仍然可以注入(inject) $routeParams
尽管我的 profile.app
模块中没有 ngRoute
呢?是因为它从主模块获取ngRoute
吗?
最佳答案
我认为问题在于您将 controllerAs 设置为“profile”
,但随后在 Controller 中编写 var vm = this;
这两个必须相同,以便您可以编写 controllerAs: 'vm'
或 var profile = this;
关于javascript - $routeParams 未填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33071927/
在上面的代码中,第一个 console.log 返回未定义 但第二个返回一个已设置 cpf 属性的对象。为什么? 我的网址:http://xxxxxxx/#!/cpf/68473303253 我的
我正在尝试将查询参数附加到从 URL 获取的所有 API 调用中。 factory('Post', function ($resource, $routeParams) { return $r
我尝试使用两个 $routeParams ,但是,仅显示路线的 templateUrl 。能够在所有 Controller 中使用 $routeParams 的最佳解决方案是什么? 路线 angula
有些我是路由和单页 Web 应用程序的新手,但我一直在努力正确学习 Angular。然而我遇到了一些麻烦和一些奇怪的问题。我遵循了构建目录的指南,我的目录如下所示: app/ componen
我正在使用 $routeParams 服务。当我在 Controller 中使用 console_log($routeParams) 服务时,我会在控制台中看到所有值。 但是,当我控制台记录 $rou
我正在使用this加载数据的技术。所以我创建了以下解析函数: NoteController.resolve = { note: function($routeParams, Note) {
我有一个访问页面 $routeParams 的指令,如下所示: myApp.directive("myList", function ($routeParams) { return {
我需要捕获查询字符串,但是出现错误。我使用的代码很简单,但是在浏览器中却失败了。 @Component({ selector: 'body', viewProviders: [ ROU
我有一个 Controller ,我正在尝试使用 $routeParams 访问参数,但是当我使用 console.log 检查值时,正在引用 lodash。 (function() { 'use
我正在尝试使用 $routeParams 获取 URL 参数: var myApp = angular.module('myApp', [ 'ngRoute', 'appControllers
我对 Angular JS 很菜鸟,但我遇到了问题。指令console.log($routeParams) 显示routeParams 为空,我不知道为什么。我使用 ionic yeoman 生成器创
我可以使用访问查询网址参数 $scope.$on('$routeUpdate', function () { var id = $routeParams.id //check if
我有一个“项目”页面,无论您是查看项目列表还是查看单个项目,我都试图访问该页面,但不使用子组件。 考虑: 应用路由器配置 { path: '/projects/...', component: Pro
有没有办法访问 redirecTo-Statement 中的 routerParams? 我想将“Order”路由的 orderId 传递给“OrderDashboard”路由,但我不知道该写什么来代
我想知道我如何拥有多个路由参数,如果你们中的任何人可能知道它的教程或答案,我将非常感激。 这是我正在做的 http://jaysg.com/newApp/#/ 我希望它是#/:region/:coun
我找到了这个 answer在另一个SO问题中。但我也想在一些页面标题中使用路由参数。 如果我有 $routeProvider像这样: $routeProvider.when('/demo/:name/
我有一个非常简单的 Angular 应用程序,我将其提炼为以下内容: var napp = angular.module('Napp',['ngResource']); var CompanyCtrl
有什么区别: $routeParams and $stateParams 什么时候用什么? 最佳答案 两者都来自不同的路由器模块。您可以在您的应用程序中使用任何人。 如果您使用 ngRoute模块,那
我正在尝试使用 Angular routeProvider 和routeParams 来获取id 和name 参数。这是js: angular.module("test",["ngRoute"])
Or, I'm not doing Single Page in the strict sense ... 嗨, 首先一些 背景 我要求所有先前加载的页面都需要保留在屏幕上,以便保留状态而不保存到存储
我是一名优秀的程序员,十分优秀!