2015-10-07 27 views
3

我有以下形式(导轨)

= form_for([@debate,@argument], html: { class: "form-horizontal", role: "form" , "ng-submit"=>"addArgument('support',$event)", novalidate: true, name: "argumentformsupport"}) do |f| 
    - if @argument.errors.any? 
    .alert.alert-danger.alert-dismissable role="alert" 
     button.close type="button" data-dismiss="alert" 
     span aria-hidden="true" 
      | × 
     span.sr-only 
      | Close 
     h4= "#{pluralize(@argument.errors.count,"error")} prohibited this argument from being saved:" 
     ul 
     - @argument.errors.full_messages.each do |msg| 
      li= msg 
    = f.hidden_field :side, :value=>side, "ng-model"=>"argument['support'].side" 

    .form-group 

    .col-sm-12 
     = f.text_area :content, class: "form-control", "ng-model"=>"argument['support'].content", required: true, "ng-minlength"=>"100", "ng-maxlength"=>"4000" 
     textarea.form-control ng-model="argument['support'].content" name="content" required=true ng-minlength="100" ng-maxlength=4000 
     <div ng-messages="argumentformsupport.content.$error" style="color:maroon" role="alert"> 
     <div ng-message="required">Please type the argument</div> 
     <div ng-message="minlength">Your field is too short</div> 
     <div ng-message="maxlength">Your field is too long</div> 
     </div> 

    .form-group 
    .col-sm-4 
     = f.submit class: "btn btn-success" 
    .col-sm-3 
     button.btn.btn-danger type="button" ng-click="debcon.toggleArgumentForm('support')" Cancel 

以下是我的应用程序的js代码

var debateApp=angular.module("debate",['ng-rails-csrf', 'yaru22.angular-timeago']) 

debateApp.controller("DebateController",["$scope","$http",function($scope,$http){ 
.... 
} 

黄氏的消息的事情并不在所有的工作。所有消息都可见。我添加了角度消息依赖性,但所有消息仍然可见。

我还检查argumentformsupport.content。$错误对象。其空

+0

您正在使用的角版本? –

+0

我正在使用angular 1.4.5 –

+2

你在哪里添加了依赖关系?在你的例子中缺少它。你可以设置一个重启器来演示这个问题,这样我们可以调试它吗? –

回答

4

你的主要模块丢失ngMessages依赖。应该看起来像这样:

angular.module("debate",['ngMessages', 'ng-rails-csrf', 'yaru22.angular-timeago']) 

当然,你还需要包括正确的JavaScript文件。

参见:https://docs.angularjs.org/api/ngMessages;

0

首先,你在你的模块依赖阵列添加ngMessages?

angular.module("debate",['ngMessages', 'ng-rails-csrf', 'yaru22.angular-timeago']) 

其次,我建议你在ng-messages div中使用$ dirty(检查用户是否已经与表单交互)。它看起来像:

 <div ng-messages="argumentformsupport.content.$error" ng-show="argumentformsupport.content.$dirty" style="color:maroon" role="alert"> 
+0

完成这两个。没有帮助 –