Angular2: Недоступно (в обещании): Котировки не поддерживаются для оценки! в компоненте

У меня есть компонент, который имеет входной параметр:

import {Component,Input} from '@angular/core';

@Component({
    selector: 'comment' ,
    template: '    
        <div class="col-lg-6 col-md-6 col-xs-6 thumb">
            <div class="post-owner">
                <div class="media">
                    <div class="media-left">
                        <a href="#">
                          <img class="media-object rounder" src=imageURI >
                        </a>
                    </div>
                </div>
            </div>
        </div>'
})

export class CommentCompoent{
    @Input() imageURI="";
}

И в родительском компоненте я передал путь изображения к нему следующим образом:

<comment [imageURI]='image_path'></comment>

Проблема в том, что когда я запускаю его, он жалуется на:

EXCEPTION: Error: Uncaught (in promise): Quotes are not supported for evaluation!

И что же мне делать?

Обновление: работает нормально, когда я [imageURI]='image_path' в родительском компоненте, и отлично показывает остальную часть компонента.

Ответ 1

Вы должны изменить свой тег comment в родительском компоненте на это:

<comment [imageURI]="image_path"></comment>

Не используйте одинарные кавычки при назначении привязки шаблона. Используйте их только для форматирования строк, например так:

<comment [imageURI]="'path/to/image.jpg'"></comment>

Ответ 2

Любая ошибка в этой ошибке: ошибка не содержит полезной информации и может быть выбрана по разным причинам, поэтому в моем случае было невозможно выяснить, просто глядя на HTML. Однако если вы поместите контрольную точку в файл angular, загруженный в ваш браузер (в моем случае compiler.umd.js, строка 11702, см. expression_converter.ts в модуле @angular/compiler, строка 395, функция visitQuote(), что и вызывает исключение), вы можете сверлить в параметр ast, который имеет свойства с именем location и uninterpretedExpression, которые помогут вам сузить, какой компонент и выражение вызывают это. В моем случае отсутствовали фигурные скобки вокруг параметра ngClass.

Ответ 3

Я получил свой ответ. Возвращается к моему родительскому компоненту: правильный формат

<comment [imageURI]=image_path></comment>
export class SinglePictureComponent{
    username='Salman kkk';
    profile_pic="https://scontent-arn2-1.cdninstagram.com/t51.2885-19/s150x150/13743117_1060048037418472_411027981_a.jpg";
    comment="I love you";
}

а затем установить свойство:

 <comment [username]=username   [comment]=comment [imageURI]=profile_pic></comment>

Ответ 4

Я также столкнулся с той же ошибкой, например:

enter image description here

Ошибка HTML-код был:

<div class="container">
  <span class="value">{{action.progress}}</span>
  <div class="wrap">
    <div class="bar" style="{{width:action.progress}}"></div>
  </div>
</div>

фиксированный код: решение ниже работает для меня. Действие происходит из файла .ts как стиль должен быть [ngStyle] чтобы мы могли напрямую передавать значение элемента.

<div class="container">
  <span class="value">{{action.progress}}</span>
  <div class="wrap">
    <div class="bar" [ngStyle]="{width:action.progress}"></div>
  </div>
</div>