제어문 \ here을 사용하고 있습니다. 그들에 클릭 할 때 부모의 선택 기능을 실행할 수외부 컨트롤러에서 탭을 선택하는 방법
.controller('TabsetController', ['$scope', function TabsetCtrl($scope) {
var ctrl = this,
tabs = ctrl.tabs = $scope.tabs = [];
ctrl.select = function(selectedTab) {
angular.forEach(tabs, function(tab) {
if (tab.active && tab !== selectedTab) {
tab.active = false;
tab.onDeselect();
}
});
selectedTab.active = true;
selectedTab.onSelect();
};
TabSet를 자식 탭 컨트롤 (하위 요소) : 컨트롤은 그 자체가 활성 탭을 설정 컨트롤러를 만듭니다.
.directive('tab', ['$parse', function($parse) {
return {
require: '^tabset',
scope: {
onSelect: '&select',
나는 첫 번째 탭이 활성화 설정 TabsetController
에 select
기능을 실행하는 데 필요한 DOM 위쪽으로 내 사용자 정의 컨트롤러를 가지고있다. 나는 이벤트 브로드 캐스팅을 사용할 수 있다고 읽었지만 TabsetController
을 수정하여 이벤트 리스너를 바인드 할 수 없으므로 이것이 가능한 옵션이 아닌 것 같습니다. 어떤 제안?
편집 :
더 나은 이해를 위해 Plunker를 참조하십시오 - here.
설정이 데모와 다른 이유가 무엇인지 명확하지 않습니다. 데모는 이미 로컬 컨트롤러 수준에서 탭을 전환하는 방법을 보여줍니다. 문제가 무엇인지 더 자세히 보여주기 위해 멍청한 예를 수정할 수 있습니까? – charlietfl
[여기] (http://plnkr.co/edit/RClxbaGFQ1Y4Jznd0XDw) 나는 Plunk를 만들었습니다. 내가해야할 일은'div.words' 컨테이너 안에 단어가있을 때 항상 첫 번째 탭을 선택하는 것입니다. 현재 두 번째 탭이 선택되고'div.words '안에 단어가 클릭되면 두 번째 탭이 활성 상태로 유지됩니다. –
이것이 무엇입니까 찾고 계십니까? http://plnkr.co/edit/qJcMXVRQvBhQCMkvZsM3?p=preview – kihu