2016-12-29 16 views
1

javascript과 비슷하며 IronValidatorBehavior의 구현 Polymer Dart에서 사용자 정의 유효성 검사를 수행하려면 어떻게합니까?Polymer Dart에서 사용자 정의 유효성 검사를 수행하는 방법

IronValidatorBehavior을 구현하는 새 맞춤형 검사기를 만들 수 있습니다.

<dom-module id="form-input"> 
    <template> 
     <style include='shared-styles iron-flex iron-flex-alignment'> 
     :host { 
      display: block; 
      padding: 1em; 
     } 
     </style> 
     <custom-validator id="validator" validator-name="jsonValidator" validator-type="json"></custom-validator> 
     <paper-textarea label="[[label]]" id="body" name="body" autofocus tabindex="0" 
         validator="jsonValidator" auto-validate error-message="This is not a valid format"></paper-textarea> 
    </template> 
    </dom-module> 

는 사용자 정의 - 검증은 위의 작품은 내가 변경하는 경우, 오타했다

좋아
library main_app.custom_validator; 

import 'dart:html'; 
import 'package:polymer/polymer.dart'; 
import 'package:polymer_elements/iron_validator_behavior.dart' show IronValidatorBehavior; 

@PolymerRegister('custom-validator') 
class CustomValidator extends PolymerElement with IronValidatorBehavior{ 

    CustomValidator.created() : super.created(); 

    @reflectable 
    bool validate(e, [_]){ 
    switch(validatorType) { 
     case 'json': 
     return textValidator(e); 
    } 
    return false; 
    } 

    bool textValidator(e){ 
    return false; 
    } 
} 

답변

0

로 기록됩니다.

<custom-validator id="validator" validator-name="jsonValidator" validator-type="json"></custom-validator> 

속성 validatorType은 '검증'의 디폴트 값으로 설정 될 필요가

<custom-validator id="validator" validator-name="jsonValidator" validator-check="json"></custom-validator> 

합니다. 대신 새로운 속성 validatorCheck를 추가했습니다. 여기에서 호출 할 유효성 검사 메서드 이름을 설정합니다.

library custom_validator; 

import 'dart:mirrors' show reflect;  
import 'package:polymer/polymer.dart'; 
import 'package:polymer_elements/iron_validator_behavior.dart' show IronValidatorBehavior; 
import 'package:validator/validator.dart' show isJSON; 

@PolymerRegister('custom-validator') 
class CustomValidator extends PolymerElement with IronValidatorBehavior{ 
    @property 
    String validatorCheck; 

    CustomValidator.created() : super.created(); 

    @reflectable 
    bool validate(value, [_]){ 

    if(validatorCheck.isNotEmpty) { 
     Symbol sym = new Symbol(validatorCheck); 
     return reflect(this).invoke(sym, [value]).reflectee; 
    } 
    return false; 
    } 

    bool json(String value, [_]){ 

    if(value.isNotEmpty) { 
     return isJSON(value); 
    } 
    return true; 
    } 
}