# Χρήση συνθηκών και escaping στις προβολές

> Διακλαδίστε με @{if}, @{else} και @{fi} και επιλέξτε ανάμεσα σε έξοδο με escape @{value} και ακατέργαστο HTML @{!value}.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: el
Content-SHA256: 42e34db1a5fc694d0a9a6ba9e767d08f12ad7f11a20efdbce9e9e0c4c6f1ee88
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

Οι προβολές είναι HTML με μπλοκ `@{...}`. Μια συνθήκη είναι `@{if expression}`, προαιρετικά `@{else}`, και κλείνει πάντα με `@{fi}`. Η έκφραση είναι απλή JavaScript και μπορεί να χρησιμοποιεί `model` (τα δεδομένα που περνούν στο `$.view()`), `repository` (τιμές που μοιράζονται με το layout), `query`, `user`, `config` και `language`.

Η έξοδος γίνεται **escape από προεπιλογή**: το `@{model.text}` μετατρέπει το `<` σε `&lt;`, που σας προστατεύει από injection. Βάλτε ένα `!` μετά το `@{` για να στείλετε την ακατέργαστη τιμή (`@{!model.html}`) και κάντε το μόνο με αξιόπιστο περιεχόμενο.

```html views/index.html
@{layout('')}
@{if model.admin}
	<p class="role">Administrator</p>
@{else}
	<p class="role">Guest</p>
@{fi}
@{if model.items.length > 2}
	<p class="many">many items</p>
@{fi}
<div class="escaped">@{model.text}</div>
<div class="raw">@{!model.text}</div>
```

```js controllers/default.js
exports.install = function() {
	ROUTE('GET /{role}/', page);
};

function page($) {
	$.view('index', { admin: $.params.role === 'admin', items: [1, 2, 3], text: 'Hello <b>World</b>' });
}
```
