2016-07-01 3 views
0

Я имею директиву с следующей аннотацией:Динамических значения атрибутов директив

@Directive({ 
    selector: 'i-text-field[number-format]', 
    providers: [NgModel] 
}) 

В директиве я получаю значение атрибута с входной аннотацией

export class NumberFormatDirective { 

@Input('number-format') format: string; 
... 

Теперь, например, Я могу определить свой формат чисел в компоненте, таком как

<i-text-field 
label='Number' hint='00000,00' 
number-format='7,2' 
ngControl> 
</i-text-field> 

Как я могу указать компонент, формат которого будет использоваться с помощью функции?

number-format='<<function-call>>' 
+0

Что такое 'номер формата =«<< функция вызова >>» '? Где это? Я не вижу, что такое настоящая проблема. –

+0

Я создаю таблицу данных, и таблица должна указывать директиву и компоненту, который использует числовой формат – user489872

+0

. Вы пробовали номер-формат = '{{getCorrectFormat()}}' –

ответ

1

Посмотрите на this article on template syntax for Angular 2. Предполагая, что вы написали функцию под названием setNumberFormat() в компоненте, вы можете установить значение атрибута number-format следующим образом:

// my-component.ts 
import { Component } from "@angular/core"; 
import { NumberFormatDirective } from "./number-format-directive.ts"; 

@Component({ 
    directives: [NumberFormatDirective], 
    template: ` 
     <i-text-field 
      label='Number' hint='00000,00' 
      number-format='{{setNumberFormat()}}' 
      ngControl> 
     </i-text-field> 
    ` 
}) 
export class MyComponent { 

    setNumberFormat(): string { 
     // code to set your number format, e.g. 
     return "7,2"; 
    } 
} 
Смежные вопросы