Angular2 - интерполировать строку с HTML

У меня была аналогичная проблема с использованием класса зависимостей Oracle, который работает в своем потоке в Winforms,

Когда событие OnChange запускалось из Oracle Dependency, я хотел показать изменения в DataGridView, просто установив DataSource в eventargs. Подробности (который по существу является DataTable), и он бросает: System.InvalidOperationException не был обработан кодом пользователя. Message = Работа с кросс-потоками недействительна: Control 'dataGridView1' обращается к потоку, отличному от потока, на котором он был создан.

Пользователь StackOverflow Брайан Пейрис (bpeiris@gmail.com), мой коллега показал мне так:

void dep_OnChange(object sender, OracleNotificationEventArgs arg)
         {
         Console.WriteLine("Notification received");

         int infoSum = int.Parse(arg.Details.Compute("Sum(Info)", "Info is not null").ToString());
         InfoSum x = (InfoSum)infoSum;
         foreach (DataRow dr in arg.Details.Rows)
            {
            Console.WriteLine(string.Format("Operation(InfoSum)= {0}", Enum.GetName(typeof(InfoSum), x)));
            Console.WriteLine(string.Format("ontable={0}  Rowid={1},info={2}", dr.Field<string>("ResourceName"), dr.Field<string>("rowid"), dr.Field<Int32>("info")));
            }
         // Following  will throw cross-thread 
         // dataGridView1.DataSource = arg.Details;
         // instead of line above use the following
         dataGridView1.BeginInvoke((Action)(()=>dataGridView1.DataSource = arg.Details));
         IsNotified = true;
         }

      }
24
задан Community 23 May 2017 в 12:26
поделиться

1 ответ

Вы можете просто использовать директиву [innerHTML] для этого.

http://plnkr.co/edit/6x04QSKhqbDwPvdsLSL9?p=preview

import {Component, Pipe} from '@angular/core'

@Component({
  selector: 'my-app',
  template: `
            Hello my name is <span [innerHTML]="myName"></span> 
  `,
})
export class AppComponent {

  myName='<strong>Pardeep</strong>';

}

Обновление:

Я проверил это не работает таким образом после выхода RC.1 .

Допустим, чтобы заставить его работать с RC.4 , вы можете использовать DomSanitizationService, как показано ниже,

@Component({
  selector: 'my-app',

  template: `
    <div [innerHTML]="myCheckbox"></div>
  `,
})
export class AppComponent {

  dangerousUrl='<input type="checkbox">';

  constructor(sanitizer: DomSanitizationService) {

    this.myCheckbox= sanitizer.bypassSecurityTrustHtml(this.dangerousUrl);
  }
}

http://plnkr.co/edit / Yexm1Mf8B3FRhNch3EMz? р = предварительный просмотр

26
ответ дан micronyks 23 May 2017 в 12:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: