2017-11-22 2 views
0

상수를 만들었지 만 []을 컨트롤러에 추가 할 때 정의되지 않은 것으로 표시됩니다. 그것을 제거하면 상수가 작동합니다. 내가 놓친 게 있니?Angularjs 상수가 컨트롤러와 작동하지 않습니다. 인라인 주석

상수가이 컨트롤러에 호출 - 언제
app.constant('RESOURCES', (function() { 
    var resource = ''; 
    return { 
    USERS_DOMAIN: resource, 
    API: resource + 'q', 
    BASIC_INFO: resource + '/api/info' 
    } 
})()); 

, 그것은 작동하지 않습니다 나는 [] 제거하고 슬픈 소식은 그 아래의 방법이기 때문에 아래

app.controller('SampleCtr', ['$scope','RESOURCES', function($scope, RESOURCES){ 
    console.log(RESOURCES) // undefined 
}]); 

-이 하나가 작동 축소되면 작동하지 않습니다.

app.controller('SampleCtr', function($scope, RESOURCES){ 
    console.log(RESOURCES) // undefined 
}); 
+2

~ http://plnkr.co/edit/hy14SrH9LAyb7bedqUBk?p=preview를 재생산 할 수 없습니다. * "RESOURCES"라는 다른 공급자가 있습니까? – Phil

+0

나는 계속해서 반복해서 점검했습니다. 아니! –

+0

공유 된 코드에도 문제가 없습니다. plnkr https://plnkr.co/edit/NXdsea2WmyONHLsCyOxp?p=preview를 참조하십시오. 추가 조사가 필요하면 공유하십시오. – Harpreet

답변

1

당신은 ng-annotate를 사용하여이처럼를 작성하여 두 번째 방법 작업을 할 수 있습니다 :

app.controller('SampleCtr', SampleCtr); 

/* @ngInject */ 

function SampleCtr($scope, RESOURCES){ 
    console.log(RESOURCES); 
}); 

는 도움이되기를 바랍니다.

+0

인라인 주석이 없어도 축소 작업이 코드를 위반했습니다. 추가 된 경우 : app.controller ('SampleCtr', [ '$ scope,'RESOURCES ', SampleCtr]), 잘 작동합니다. 감사!!! –

관련 문제