2012-05-29 4 views
5

DB에 무수한 매개 변수를 저장하고 싶습니다. 사용 사례의 예로는 사용자의 기호에 따라 각 사용자의 색상이 변경 될 수 있습니다.무손실 매개 변수를 동적으로 변경하는 방법

이 작업을 수행하는 가장 좋은 방법은 모든 .less 파일을 구문 분석하여 매개 변수를 얻는 것이고 사용자는 DB에 사용자를 저장하는 매개 변수를 설정할 수 있습니다. 적은 파일이 요청되면 핸들러 오버로드는 DB에 매개 변수를 쿼리 할 수 ​​있습니다. 그런 다음 처리기는 매개 변수가 설정된 CSS를 출력 할 수 있습니다.

Questions : - .less 파일을 가져 와서 매개 변수 목록을 얻으려면 어떻게해야합니까?- .less 파일에 매개 변수 배열 (키 값 쌍)을 사용하고 CSS를 출력하려면 어떻게해야합니까?

모두 점이없는 프레임 워크를 사용합니다.

답변

2

닷넷을 사용하는 경우 점이 없으면 평가 전에 실행하는 방문자가 될 수있는 플러그인을 지정할 수 있습니다. 이것은 덜 추상적 인 구문 트리의 모든 노드를 방문하므로 모든 변수를 쉽게 결정할 수 있습니다. 또한 Dotless는 변수 파일을 생성 할 수 있도록 patamteres를 지정할 수 있습니다.

그러나 이것은 데이터베이스의 모든 변수를 "마스터 복사본"으로 저장하고 less를 구문 분석하지 않아도되도록하는 것이 좋습니다.

3

답장이 늦어 지지만 데이터베이스에 저장된 사용자를 기반으로 사용자 정의 색상이있는 요구 사항과 비슷한 것을했을 수 있습니다.

우리의 솔루션을 사용할 수있는 점이없는의 소스에 사용자 지정 코드를 추가하고 여기에 나는 그것이 문자열이 우리가 대체하고 싶은 부분을 대체 justs 해석 중에

그럼 https://github.com/dotless/dotless을 믿습니다. 이 접근 방식의 단점은 매번 소스를 다시 작성해야하는 새로운 점없는 dll 빌드를 업데이트하는 것입니다.

dotless.Core.Utils.HslColor hslcolor = dotless.Core.Utils.HslColor.FromRgbColor(new dotless.Core.Parser.Tree.Color("187AAB"); 
       hslcolor.Lightness = 0.93; 
       var hexString = '#' + (hslcolor.ToRgbColor().RGB.Select(i => ((int)i).ToString("X2")).Aggregate((a, b) => a + b)).ToLowerInvariant(); 
       var resultColor = hexString; 
+0

당신이 당신의 솔루션주십시오의 예를 가지고 있습니까 : 여기

편집 은 예제 코드이다? 나는 똑같은 것이 필요하다. – Curt

+0

몇 가지 샘플 코드를 추가했습니다. 여기에서 우리는 사용자 정의 색상을 기반으로 UI의 다른 부분에 대해 다른 색조를 계산합니다. – John

+0

감사합니다 John, 많이 감사하겠습니다. – Curt

관련 문제