나는 Kibana 용 사용자 정의 패널에서 작업 중입니다. Kibana는 AngularJS를 사용합니다. "필터"라는 서비스가 있습니다. 해당 서비스의 코드는 seen here 일 수 있습니다. 내 패널에서 런타임에 동적으로 필터를 추가하려고합니다. 내가 말할 수있는 것으로부터 나는 다음과 같이 할 수 있다고 생각했다 :AngularJS 서비스에서 JavaScript 함수 호출
var n = getName();
var filter = {
alias: 'My Filter',
editing: false,
query: 'name:"' + n + '"',
type: 'querystring'
};
$scope.dashboard.current.services.filter.set(filter, null, true);
불행히도,이 접근법은 효과가없는 것처럼 보인다.
TypeError: undefined is not a function
일부 조사 후, 나는이 세트는 필터 객체에 함수로 표시되지 않는다는 사실에 문제를 정확히 지적했습니다 대신, 나는라는 오류가 발생합니다. 나는 그것이 달릴 때 목록으로 만들어진 것을 보지 않았다 console.log($scope.dashboard.current.services.filter);
나는 혼란 스럽다. 서비스 자체에서 코드를 볼 때 명확한 설정 방법을 볼 수 있습니다. 아직, 그 console.log에 나열되어 있지 않습니다. 내가 여기서 뭔가를 오해하니? 필터 서비스에서 set
함수를 호출하는 방법이 있습니까? 그렇다면 어떻게?
감사합니다.
이 질문은 여러분이 작업하는 소프트웨어에만 국한되며 따라서 여기에서 도움이되지 않을 수도 있습니다. 나는 그 곳의 근원을 잠시 들여다 보았다. 그리고 아무것도 나에게 튀어 나오지 않았다. 콘솔에 나열된 해당 서비스에 정의 된 다른 기능을보고 있습니까? –
'filterSrv'는 어떻게 주입됩니까? 더 많은 코드를 게시 할 수 있습니까? 'set()'은'dashboard'가 아니라'filterSrv'에 있으므로,'filterSrv.set (filter, null, true)'와 같이 호출 할 가능성이 더 큽니다. –