【发布时间】:2015-07-12 06:31:16
【问题描述】:
我在 Angular JS 中使用 routeProvider:
.when('/profile/personal', {
templateUrl: 'personal.html',
controller: 'EditProfileController'
})
如何将参数传递给控制器EditProfileController,并在此处调用返回数据的 Ajax 方法。该数据必须显示在personal.html的路由模板中。
例子:
.controller('EditProfileController', ['$scope', '$http', function ($scope, $http) {
// If was click on `/profile/personal` from route, must get patam `personal` and call method GetAjax(param);
$scope.GetAjax = function (param){
//here return data put it in template HTML from route
}
}]);
我的链接按路径位于页面中:
http://wd.tk/profile
当我点击链接路由时,我得到 URL:
http://wd.tk/profile#/profile/personal/1
我做:
.controller('EditProfileController', ['$scope', '$http', function ($scope, $http, $routeParams) {
console.log($routeParams);
}]);
我得到错误:
TypeError: Cannot read property 'idProfile' of undefined
【问题讨论】:
-
这个
param来自哪里?是来自路由Url吗? -
如果另有说明,当我点击路由中的链接时,我必须在控制器中调用 AJAX 并且响应的数据必须在路由的模板中
-
你可以用
"/profile/personal/:param"在路由url中指定一个参数,param可以通过可注入的$routeParams获得,所以,在控制器中你可以做$routeParams.param
标签: angularjs