2016-12-02 9 views
2
<li *ngFor="let pdfifRecord of pdf.ifRecord;let i=index"> 
        <p>{{eval(pdfifRecord.labelMsg)}}</p> 
</li> 

Я хочу показать результат eval.Угловая 2, ошибка встроенного шаблона с использованием функции eval()

Но получаю ошибку

Ошибка в шаблоне инлайн, вызванные: self.parent.parent.parent.context.eval не является функцией.

Но тот же рабочий в моих .ts файл например:
console.log(eval("GECM_IFL_ATTENTION_NEEDED_ITIQ"));

+6

Вы никогда не должны использовать 'eval()'. НИКОГДА. Он закручивает область видимости и открывает дыры в вашем приложении. –

+3

* EVAL is EVIL * .. почему вы хотите, чтобы eval работал над выражением шаблона, это было бы угрозой безопасности. –

+0

любая замена функции? – sreekanth

ответ

2

Ну вы не должны использовать eval. Но чтобы ответить на ваш вопрос. Причина в том, что это не функция, потому что она ищет функцию, называемую eval в вашем классе. Который не существует.

Это будет работать, например:

@Component({ 
    selector: 'my-component', 
    template: `<h2>Hello {{eval()}}` 

}) 

export class MyComponent { 
    public eval() { 
    let e = eval(2*3); 
    return e ; 
    } 
} 

Plunkr Пример:

https://plnkr.co/edit/YZJGPX8pjf9BNbB1F8JJ?p=preview

Опять же, не следует использовать Eval.

+1

ЭТАЛ ВСЕ ВЕЩИ !! –

+0

работал и благодарит за это. но вы можете предложить альтернативу для eval() – sreekanth

+0

@sreekanth, я точно не знаю, что вы пытаетесь сделать с eval. Но, возможно, взгляните на некоторые из этих ранее заданных вопросов. Http://stackoverflow.com/questions/16037033/alternative-to-eval-javascript, http://softwareengineering.stackexchange.com/questions/323592/alternative- for-eval-in-javascript-for-expression-оценка –