在Angular2中设置自定义属性指令

时间:2016-03-28 18:45:19

标签: angular

我正在尝试将服装属性指令设置为输入,但我无法找到方法。

我的指示如下

@Directive({
    selector: '[disable-paste]'
})
export class DisablePaste {
    constructor(private _elementRef:ElementRef) {
        this._elementRef.nativeElement.onpaste = (e:any) => {
            e.preventDefault();
        }
    }
}

如果我只是将指令放在输入中,它就可以了。但是,当我试图“有条件地”使用它时,却没有。 我尝试了所有这些:

<input [disable-paste]="doNotAllowPaste" ... />
<input disable-paste="doNotAllowPaste" ... />
<input [attr.disable-paste]="doNotAllowPaste" ... />

2 个答案:

答案 0 :(得分:3)

我认为只要输入属性值发生变化,您就需要一个输入属性才能有条件地执行逻辑:

# Usage: largest [dir]
largest() {
    local f size largest

    while read -rd '' f; do
        size=$(wc -c < "$f")
        if (( size > largest[0] )); then
            largest=("$size" "$f")
        fi
    done < <(find "${1-.}" -type f -print0)

    printf '%s is the largest file in %s\n' "${largest[1]}" "${1-.}"
}

答案 1 :(得分:1)

你想试试这个:

template <typename T, typename Type>
class A
{
    typedef Type MyType;
};    

template <typename T>
class B : public A<B<T>, T>
{

};

如果使用@Directive({ selector: '[disable-paste]' }) export class DisablePaste { @Input('disable-paste') disablePaste:any; constructor(private _elementRef:ElementRef) { this._elementRef.nativeElement.onpaste = (e:any) => { e.preventDefault(); } } } ,您将获得与指定表达式的评估相对应的对象。没有它们,就是一个字符串值。

相关问题