2013-02-26 3 views
1

Angular.js에 처음 생겼습니다. 다른 클라이언트의 지시문에서 다른 템플릿을 사용하려고합니다.디렉토리의 템플릿을 동적으로 변경하십시오.

문제가

, 나는 클라이언트의 세 가지 종류의 세 가지 템플릿을 가지고 있고, 나는 인터넷 검색 후 발견 된 결과에 대한 모든했다

감지 한 후 클라이언트 유형의 결과에 따라 내 지시에 대해 서로 다른 템플릿을 사용하려면 디렉토리 태그에 속성을 추가하지만 검색 결과가 준비 될 때까지 템플릿이 이미 컴파일됩니다.

제안 사항?

답변

1

다른 디렉토리에서 템플릿을 찾을 변수를 지시문에 삽입 할 수 있습니다.

myApp.directive('testDirective', [ 
    'clientType', function(clientType) { 
    return { 
     ... 
     templateUrl: '/templates/' + clientType + '/test.html' 
    }; 
    } 
]); 

그러면 앱 외부에 'clientType'상수를 설정하고 상수로 전달할 수 있습니다.

myApp.constant('clientType', 'mobile'); // Some type of function to determine this 

이 기능을 효과적으로 사용하려면 앱을 수동으로 부트 스트랩해야 할 수도 있습니다. 프로덕션 코드에서 템플릿을로드 할 위치를 제어하기 위해 비슷한 작업을하고 있습니다.

+0

쿨, 고마워. 나는 그런 물건을 지나칠 수 있다고 생각하지 않았습니다. 이제는 클라이언트를 결정하고 그 기능을 지시문에 전달한 서비스에서 참과 같은 기능을하는 함수가 있습니다. –

1

지시문 템플릿 내에 ngSwitch을 사용할 수 있습니다.

관련 문제