내에서 서비스 이름을 얻을 service
(또는 factory
, provider
, controller
, directive
...) 오브젝트 내에서? 예AngularJS와 : 내가 이름을 얻을 수있는 방법 서비스
angular.module('app', []).controller('myCtrl', function() {
// how do I get the name 'myCtrl' here?
})
확실한 방법입니다 하드 코딩,하지만 난 생각
.service('myService', function() {
this.name = 'myService';
});
이 방법이라고 피하고 싶은,하지만 난 싶지 않기 때문에 그것을 피하기 위해 바라고 있어요 내 응용 프로그램에서 전역을 선언해야합니다
var myCtrlName = 'myCtrl';
angular.module('app', []).controller(myCtrlName, function() {
console.log(myCtrlName);
});
당신은 왜 이것을 필요로합니까? 코드의 이름에 의존하는 순간 문제가 발생합니다. – Yoshi
@ Yoshi 중재자 서비스로 콜백을 등록하는 데 사용하고 싶습니다. 서비스의 이름을 .init의 중재자에게 전달하므로 중재자는 각 서비스에 대한 ID를 갖습니다. 조정자 (mediator)는 이름에 의존하는'$ routeProvider.when ('/', {templateUrl : 'views/main.html', 컨트롤러 : 'myCtrl', ...})'과 같은 엔드 포인트를 연결하며, (참으로 축하받은) Angular의 패턴. 또 다른 제안이 있니? – poshest
각 이름의 사용은 항상 한 번에 해당 요소가 특정 이름으로 등록되었다는 사실에 의존합니다. 그것은 결코 추측되거나 유사하지 않으며, 항상 setter/getter 관계입니다. 당신이하려고하는 것이 같은 개념인지는 확실치 않습니다. 또한 귀하의 질문에 관해서는 귀하의 의견에서 이것은 [X-Y 문제] (http://mywiki.wooledge.org/XyProblem)처럼 보입니다. – Yoshi