ngOnChanges можно использовать именно для этого
Сначала убедитесь, что ваш компонент реализует ngOnChanges следующим образом
export class TimelineComponent implements OnChanges
Затем реализуйте метод ngOnChanges следующим образом
ngOnChanges(changes: SimpleChanges) {
if (changes.editing) {
console.log(changes.editing.currentValue);
}
}
[ 117] Каждый раз, когда любой вход был изменен, он будет вводить метод ngOnChanges. По этой же причине был добавлен оператор if, поскольку при изменении любого другого ввода свойство editing
не будет существовать в объекте changes
.
Для примитивных значений это сработает при любом изменении. Для ссылочных значений вам нужно изменить фактическую ссылку, просто изменение свойства объекта, имеющегося во входных данных, не сработает.
using System.CodeDom.Compiler;
using System.Diagnostics;
using Microsoft.CSharp;
CSharpCodeProvider codeProvider = new CSharpCodeProvider();
ICodeCompiler icc = codeProvider.CreateCompiler();
System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.OutputAssembly = "AutoGen.dll";
CompilerResults results = icc.CompileAssemblyFromSource(parameters, yourCodeAsString);
Адаптированный от http://support.microsoft.com/kb/304655
Прямо сейчас Ваш лучший выбор CSharpCodeProvider; планы относительно 4,0 включают "компилятор как услуга", который сделает это полностью управляемым.