2017-02-09 28 views
0

未定義nunjucks變量,這只是正常:離開unrepalced

nunjucks.renderString('Hello {{ username }}', { username: 'James' }); 

,並給了我'Hello James'。如果我離開了username如下圖所示:

nunjucks.renderString('Hello {{ username }}', { noUsername: 'James' }); 

nunjucks給我'Hello '。我試圖定義的行爲是一種方式,讓我離開未定義的變量未置換使

nunjucks.renderString('Hello {{ username }}', { noUsername: 'James' }); 

給我'Hello {{ username }}'。有沒有辦法使用自定義過濾器,宏,模板,更聰明的東西來實現這一點?我想避免滾動我自己的語法(自定義轉義字符),並儘可能保持更習慣。我使用了renderString作爲一個簡單的例子,但我想要實際使用整個模板(通過render)。

回答

0

原來{% raw %}a fantastic tag已經建在nunjucks中,可以用來處理你知道你的變量事先未定義的情況。例如,當使用時,例如作爲:

nunjucks.renderString('Hello {{ username }} {% raw %}{{ iDoNotExist }}{% endraw %}', 
    { username: 'James' }); 

它給出了下面的輸出:

'Hello James {{ iDoNotExist }}'