2016-08-24 6 views
1

Ionic 프레임 포크를 배우고 앱을 개발 중입니다.Ionic AngularJS 뷰의 기본값 설정

.state('app', { 
    url: '', 
    abstract: true, 
    templateUrl: "templates/default.html" 
    }) 

내 default.html을은 다음과 같습니다 : 이 같은 추상적 인 상태 정의

<ion-side-menus> 
<ion-side-menu-content> 
    <div ui-view="headerview"></div> 
    <div ui-view="contentview"></div> 
</ion-side-menu-content> 
<div ui-view="menuview"></div> 

을 그리고 내 모든 실제 상태를 선언

.state('app.contacts', { 
    url: '/contacts', 
    views: { 
     'headerview': { 
     templateUrl: "templates/common/header.html" , 
     controller: 'headerControllers' 
     }, 

     'menuview': { 
     templateUrl: "templates/common/menu.html" 
     }, 

     'contentview': { 
     templateUrl: 'templates/contacts.html', 
     controller: 'contactControllers' 
     } 
    } 
}) 

.state('app.partners', { 
    url: '/partners', 
    views: { 
     'headerview': { 
     templateUrl: "templates/common/header.html" , 
     controller: 'headerControllers' 
     }, 

     'menuview': { 
     templateUrl: "templates/common/menu.html" 
     }, 

     'contentview': { 
     templateUrl: 'templates/partners.html', 
     controller: 'partnerControllers' 
     } 
    } 
}) 

이것은 매력처럼 작동하지만 헤더와 메뉴 뷰는 almo에서 동일 할 것이라고 언급했습니다. 내 모든 상태! 그다지 DRY가 아닙니다. 필요한 경우 덮어 쓸 수있는 기본값을 정의하는 방법이 있습니까?

이 작업을 수행하려면

답변

1

한 가지 방법은 변수에 저장 당신의 경로를 생성하고 모든 국가를 위해 그것을 사용하는 것입니다, 감사합니다. 기본보기를 덮어 쓰려면 그와 마찬가지로

.state('app.contacts', { 
    url: '/contacts', 
    views: { 
     'headerview': { 
     templateUrl: defaultHeader , 
     controller: defaultHeaderController 
     }, 
     'menuview': { 
     templateUrl: defaultMenu 
     }, 

     'contentview': { 
     templateUrl: 'templates/contacts.html', 
     controller: 'contactControllers' 
     } 
    } 
}) 

.state('app.partners', { 
    url: '/partners', 
    views: { 
     'headerview': { 
     templateUrl: defaultHeader , 
     controller: defaultHeaderController 
     }, 
     'menuview': { 
     templateUrl: defaultMenu 
     }, 

     'contentview': { 
     templateUrl: 'templates/partners.html', 
     controller: 'partnerControllers' 
     } 
    } 
}) 

을 : 함수 메이크업의 시작에서

: 당신의 상태를 초기화하는 동안 다음

var defaultHeader = 'templates/common/header.html'; 
var defaultHeaderController = 'headerControllers'; 
var defaultMenu = 'templates/common/menu.html'; 

당신은 할 수있을 것입니다 너는 할 수있어. 그리고 코드를 수정할 장소가 하나뿐입니다.