2015-12-30 111 views
1

下面是我的領域的一個簡單的例子:角Formly - 錯誤消息不會出現

{ 
    key: 'name', 
    type: 'input', 
    validators: { 
    nameValid: { 
     expression: function(viewValue, modelValue){ 
     var value = modelValue || viewValue; 
     return (some condition on value); 
     }, 
     message: '$viewValue + " is not a valid string"' 
    } 
    }, 
    templateOptions: { 
    label: 'Name', 
    placeholder: 'Name', 
    options: [], 
    required: true 
    }, 
    validation: { 
    messages: { 
     required: function(viewValue, modelValue, scope) { 
     return scope.to.label + ' is required'; 
     } 
    } 
    } 
}, 

我有兩個特定的條件,也是必填字段條件中設置的驗證消息。但是,如果我的情況不符合或者字段未填寫,則不會顯示錯誤消息。該字段只是變成紅色(它應該),但我怎樣才能讓它也顯示我的錯誤信息?

回答

0

添加錯誤模板然後重試,最好是如果你能提供一個jsbin鏈接來調試。

<script type="text/ng-template" id="custom-messages.html"> 
    <div class="my-messages" ng-messages="options.formControl.$error" ng-if="options.validation.errorExistsAndShouldBeVisible"> 
     <div class="error-message" ng-message="{{::name}}" ng-repeat="(name, message) in ::options.validation.messages"> 
      {{message(options.formControl.$viewValue, options.formControl.$modelValue, this)}} 
     </div> 
    </div> 
</script> 
+0

謝謝,好像我錯過了一個錯誤模板。你能夠引導我(可能是一行一行)如何工作? – kshah

+0

你實際上可以選擇任何角度形式的頁面給出的例子。 http://angular-formly.com/#/example/other/error-summary這將顯示錯誤消息,如果你感興趣也會出現錯誤摘要 – cypronmaya

0

您可以將包裝器設置爲app.config函數中的輸入字段以顯示錯誤消息。

app.config(function (formlyConfigProvider)({ 
     formlyConfigProvider.setWrapper({ 
     name: 'validation', 
     types: ['input'], 
     template:'<formly-transclude></formly-transclude><div ng-messages="fc.$error" ng-if="form.$submitted || options.formControl.$touched" class="error-messages"><div ng-message="{{ ::name }}" ng-repeat="(name, message) in ::options.validation.messages" class="message">{{ message(fc.$viewValue, fc.$modelValue, this)}}</div></div>' 
     //templateUrl: 'error-messages.html' 
});}};