에 대한 중첩 된 객체 정보에 액세스하고 이런 일이하기 : 객체의는 어떻게 각도에서 응용 프로그램을 쓰고 있어요 중첩 된 기능
$scope.items = [
{'name':'someName',
'title': 'someTitle',
'filter': function(item){
Filters.setTableTitle(this.title); //cannot get title
...
}
},
{'name':'someName',
'title': 'someTitle',
'filter': function(item){
Filters.setTableTitle(this.title);
...
}
}
];
배열입니다. 각 객체의 일부는 함수이고, 함수 내부에서 그 객체 자체의 제목을 잡는 함수를 호출하여 나머지 응용 프로그램에 더 큰 범위로 전달합니다.
그러나 각 개체의 제목을 가져올 수 없습니다.
여기에서 사용하려면 어떻게해야합니까?
감사합니다.
업데이트는 여기에 (매우 비슷한) 위의 코드를 사용하여 내 HTML입니다. 코드를 사용하여 버튼을 만듭니다. 각 개체의 filter
부 내에 유지
<p ng-repeat="link in items">
<block class="button" href="{{link.URL}}" title="{{link.title}}">
<a class="hrefLink" href="{{link.URL}}" ng-click="Filters.setFilter(link.filter, link.title)">
{{link.name}}
</a>
</block>
</p>
함수는 다음 DOM을 갱신 Filters.setFilter()
로 전달되는 정보를 반환한다.
Filters.setFilter는()
service.setFilter = function(filter, title){
service.searchTerm = '';
$spMenu.hide(); //close nav if open
service.selectedFilter = filter;
service.setTableTitle(title); //this does the job
};
나는이 기능이 작동하는 방식을 재 배열했습니다, 지금은 단순히 다른 기능에 제목에 전달합니다. 이것은 이을 원하지만 여전히 초기 질문을 해결할 수없는 작업을 처리합니다. 오브젝트 내부에서 오브젝트의 일부에 어떻게 액세스합니까?
이 아마로 시작하는 것은 좋지 않습니다. 대신 서비스 나 공장을 만들 수 있습니까? 서비스/공장으로 만들면 나중에 유용 할 수있는 다른 서비스/공장을 쉽게 추가 할 수 있습니다. 예를 들어, localStorageService ... –
html 코드는 어떻게 생겼습니까? 그것은 반복에 있습니까? – PSL
이것은 ng-repeat를 통해 소수의 버튼을 생성하는 데 사용됩니다. 필터 기능은 버튼을 클릭 할 때 호출됩니다. 버튼을 클릭하면 새보기를로드하는 대신 필터가 변경되고 해당 테이블이 다시 정렬됩니다. 이 정보 자체는 컨트롤러를 넘을 필요는 없지만 다른 곳에서 사용할 수 있도록 여기에서 팩토리로 제목을 가져 오려고합니다. (내 필터 공장에 전달하려고합니다.) – user2494584