$ routeProvider 내부의 AngularJS 호출 메서드

올렉산드르 H

저는 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);
};
});

내 문제는 라우팅 일치시 컨트롤러의 특정 메서드를 호출하는 방법을 모르겠습니다. 메서드를 호출하고 매개 변수를 제공해야합니다. 라우팅에서 로그인합니다. 이것을 해결하는 방법? 답변 해 주셔서 감사합니다

그 칼팍

내가 올바르게 이해한다면,보기의 두 부분 (또는 두 개의보기)에 동일한 컨트롤러를 재사용하고 있습니다. 하나는 사용자 생성 용이고 다른 하나는 현재 사용자의 세부 정보를 가져 오기위한 것입니다.

이 두 가지 측면은 완전히 다르기 때문에 두 가지 모두에 동일한 컨트롤러를 사용하는 것은 바람직하지 않습니다. 컨트롤러는 달라야하며 공통 또는 재사용 가능한 기능은 서비스를 통해 공유해야합니다.

백엔드에 호출해야한다 어떤 경우, 코드에서 하지 컨트롤러 내부에 위치하지만 서비스로 될 수있다. 예 :

app.service('UserSrv', function ($http) {
    var url = '...';
    this.userDetails = function (login) {
        return $http.get(url + login);
    };
    this.createUser = function (user) {
        return $http.post(url, user);
    };
});

app.controller('UserCtrl', function ($scope, UserSrv) {
    var login = '...';
    var errorCallback = ...;

    // Fetch user details upon initialiation
    UserSrv.userDetails(login).success(function (data) {
        $scope.user = data[0];
    }).error(errorCallback);
});

app.controller('NewUserCtrl', function ($location, $scope, UserSrv) {
    var errorCallback = ...;

    $scope.createUser = function (user) {
        UserSrv.createUser(user).success(function (data) {
            $location.path('/users');
        }).error(errorCallback);
    };
});

또한 $routeProviderresolve속성을 사용 하여 사용자의 세부 정보를 "사전로드"하고 인수로 UserCtrl에 전달할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

AngularJS 호출 웹 메서드

분류에서Dev

routeProvider 해결 함수에서 컨트롤러의 메서드를 호출하는 방법

분류에서Dev

AngularJS : 루프 내에서 팩토리 메서드 호출

분류에서Dev

JavaScript에서 해당 메서드 내부의 메서드 호출

분류에서Dev

angularJS $ routeProvider

분류에서Dev

$ state.go의 조건부 라우팅 및 편집 메서드 angularjs 호출

분류에서Dev

AngularJS의 $ routeProvider 내에서 컨트롤러를로드 할 수 없습니다.

분류에서Dev

* ngIf 내부에서 메서드 호출

분류에서Dev

MainActivity 내부 탐색 호스트 조각의 메서드 호출

분류에서Dev

Python의 다른 클래스 내부에서 메서드 호출

분류에서Dev

BroadcastReceiver에서 Activity 내부의 메서드 호출

분류에서Dev

Javascript window.open에서 AngularJS RouteProvider 컨트롤러를 호출 하시겠습니까?

분류에서Dev

부모 메서드 호출

분류에서Dev

다른 컨트롤러에서 컨트롤러 내부의 함수 호출-AngularJS

분류에서Dev

인터페이스 C #의 메서드 내부에서 메서드 호출

분류에서Dev

AngularJS routeprovider가 호출되지 않았습니다.

분류에서Dev

다른 모델 내부의 호출 메서드

분류에서Dev

operator << 내부의 가상 메서드 호출

분류에서Dev

viewmodel 내부의 기존 메서드 호출

분류에서Dev

Typecasing없이 Session 내부의 Object 메서드 호출

분류에서Dev

어댑터 클래스 내부의 호출 메서드

분류에서Dev

Angular 1.5 : ngRepeat 내부의 구성 요소 메서드 호출

분류에서Dev

Java-메서드 내부에서 메서드 호출 계산

분류에서Dev

Angularjs : TypeError : null의 'insertBefore'메서드를 호출 할 수 없습니다.

분류에서Dev

격리 된 범위 내부의 Angularjs ng-click은 외부 범위에서 함수를 호출합니다.

분류에서Dev

컨트롤러 내부에서 함수를 호출하는 angularjs

분류에서Dev

AngularJS 경로 / ajax 호출 / 500 내부 서버 오류

분류에서Dev

AngularJS : ng-repeat 내부에서 컨트롤러 함수 호출

분류에서Dev

AngularJS 컨트롤러 내에서 외부 함수 호출

Related 관련 기사

  1. 1

    AngularJS 호출 웹 메서드

  2. 2

    routeProvider 해결 함수에서 컨트롤러의 메서드를 호출하는 방법

  3. 3

    AngularJS : 루프 내에서 팩토리 메서드 호출

  4. 4

    JavaScript에서 해당 메서드 내부의 메서드 호출

  5. 5

    angularJS $ routeProvider

  6. 6

    $ state.go의 조건부 라우팅 및 편집 메서드 angularjs 호출

  7. 7

    AngularJS의 $ routeProvider 내에서 컨트롤러를로드 할 수 없습니다.

  8. 8

    * ngIf 내부에서 메서드 호출

  9. 9

    MainActivity 내부 탐색 호스트 조각의 메서드 호출

  10. 10

    Python의 다른 클래스 내부에서 메서드 호출

  11. 11

    BroadcastReceiver에서 Activity 내부의 메서드 호출

  12. 12

    Javascript window.open에서 AngularJS RouteProvider 컨트롤러를 호출 하시겠습니까?

  13. 13

    부모 메서드 호출

  14. 14

    다른 컨트롤러에서 컨트롤러 내부의 함수 호출-AngularJS

  15. 15

    인터페이스 C #의 메서드 내부에서 메서드 호출

  16. 16

    AngularJS routeprovider가 호출되지 않았습니다.

  17. 17

    다른 모델 내부의 호출 메서드

  18. 18

    operator << 내부의 가상 메서드 호출

  19. 19

    viewmodel 내부의 기존 메서드 호출

  20. 20

    Typecasing없이 Session 내부의 Object 메서드 호출

  21. 21

    어댑터 클래스 내부의 호출 메서드

  22. 22

    Angular 1.5 : ngRepeat 내부의 구성 요소 메서드 호출

  23. 23

    Java-메서드 내부에서 메서드 호출 계산

  24. 24

    Angularjs : TypeError : null의 'insertBefore'메서드를 호출 할 수 없습니다.

  25. 25

    격리 된 범위 내부의 Angularjs ng-click은 외부 범위에서 함수를 호출합니다.

  26. 26

    컨트롤러 내부에서 함수를 호출하는 angularjs

  27. 27

    AngularJS 경로 / ajax 호출 / 500 내부 서버 오류

  28. 28

    AngularJS : ng-repeat 내부에서 컨트롤러 함수 호출

  29. 29

    AngularJS 컨트롤러 내에서 외부 함수 호출

뜨겁다태그

보관