2013-11-20 3 views
1

경로에 대해 resolve을 설정하는 명확한 방법을 찾고 싶습니다.경로의 해결 속성을 명확하게 지정하는 방법

내가 본 것을 3 개 주이 일을하는 방법 거기에서 : 논리가 복잡하거나 내가 필요하면 경우 (좋지 않은) 나쁜

  • 익명 함수를 (전역 함수를 선언

    • 제어기 기능에 대한 메소드 설정 (제어기가 별도의 함수 선언으로 사용되는 것을 좋아하지 않으므로이 방법은 작동하지 않습니다. 대신 단지을 사용하십시오.

    이와 비슷한 방법으로 더 나은 방법이 있습니까? 특히 유사한 경로 사이에서 공유되는 해결 방법이 필요한 경우 더욱 그렇습니다. (예 :/people 및/people/: personID)

    감사합니다.

  • +3

    서비스를 사용하여 resolve 메소드를 노출하십시오. – Chandermani

    +0

    @Chandermani Angular의 ".config"단계 중에 서비스를 삽입 할 수 없습니다. – marcoseu

    +1

    경로 개체 맵용으로 할 수 있습니다. 뭔가'resolve : {data : function ($ http, $ myService) {}}' – Chandermani

    답변

    3

    .constant을 작성하여 .config 단계에서 주입하는 방법은 무엇입니까? AngularJS documentation for .constant을 보면 함수를 상수로 정의 할 수 있습니다.
    http://plnkr.co/edit/psuYHu4rtlp4o42ZgqVs?p=preview

    I : 여기

    app.config(function ($routeProvider, Resolver) { 
        $routeProvider.when("/home", {templateUrl: ..., resolve: Resolver, ...}) 
    ... 
    

    이 작업 plunker입니다 : 당신이로 사용하는 것이 그런

    app.constant("Resolver", { 
        "MessageUtils": function() { 
        return { 
         get: function (message) { 
         return "MUTIL: " + message; 
         } 
        } 
        } 
    }); 
    

    :

    그래서, 당신은 같은 것을 할 수 있어야 내 angularAMD 프로젝트에서 비슷한 요청을했고 해결을 돕기 위해 .route이라는 함수를 만들었습니다. 속성을 사용하여 경로를 정의 할 수 있습니다. 다음은 코드에 link입니다.

    +0

    고마워, 마르코스. Chandermani의 서비스 또는보다 일반적인 유형의 공급자 사용에 대한 아이디어는 더 광범위합니다. – Francisc

    관련 문제