【发布时间】:2014-06-21 10:19:16
【问题描述】:
我是 AngularJS 的新手。所以我有一个简单的问题,但我找不到答案。我有代码:
angular.module('app', ['app.controllers', 'ngRoute']).
config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/users', {templateUrl: '../pages/list.html', controller: 'UserListCtrl'}).
when('/user-details/:login', {templateUrl: '../pages/form.html', controller: 'UserCtrl' /* and here I need to call userDetails(login) from UserCtrl */}).
otherwise({redirectTo: '/users'});;
}
]);
app.controller('UserCtrl', function ($scope, $http, $location) {
$scope.userDetails = function (login) {
$http.get(url + login).success(function (data) {
$scope.user = data[0];
console.log('tst');
}).error(errorCallback);
};
$scope.createUser = function (user) {
$http.post(url, user).success(function (data) {
$location.path('/users');
}).error(errorCallback);
};
});
我的问题是:当路由匹配时,我不知道如何调用控制器的特定方法。我需要调用方法并为其提供参数:从路由登录。如何解决这个问题? 谢谢你的回答
【问题讨论】:
-
看看这个帖子stackoverflow.com/questions/16384134/…。您可以像这样在控制器中调用 userDetails 方法 $scope.userDetails()
-
@Yevgeniy.Chernobrivets ,这不是解决方案。我在控制器中有两种方法。而且我不想每次使用这个控制器时都调用 userDetails 。例如,如果我调用 createUser 方法,它会自动调用 userDetails 的东西
-
那么也许解决选项会对您有所帮助? docs.angularjs.org/api/ngRoute/provider/…
标签: javascript angularjs url-routing