使用没有表单控件的ng-messages进行AngularJS验证

时间:2016-03-08 08:37:55

标签: angularjs angularjs-validation ng-messages

我将时间存储为数据库/模型中的整数分钟。但是,我希望以十进制小时显示给用户(并让他们使用多个按钮编辑值)。

目前我有这个:

<p class="input-group">
    <input type="text" readonly="readonly" value="{{vm.time.minutes|hoursMinutes}}" class="form-control" />
    <span class="input-group-btn">
        <ix-time-picker minutes="vm.time.minutes"></ix-time-picker>
    </span>
</p>

p标记中的2个元素:

  1. input type="text"可以正常显示机制。 hoursMinutes过滤器返回格式化值,例如90分钟它将返回&#39; 1小时30分钟&#39;
  2. ix-time-picker指令会弹出一个模式窗口,其中包含15 mins30 mins45 mins1 hour1:15 hours等按钮
  3. 这很好 - 除了验证。我正在使用ng-messages,我无法解决如何显示required州的验证问题:

    <li class="help-block has-error"
        ng-if="mainForm.$submitted"
        ng-messages="mainForm.minutes.$error">
        <span ng-message="required">
            Minutes is required.
        </span>
    </li>
    

    我无法控制名为minutes的表单(至少使用ng-model),因此无法显示该消息。我可以使用input添加隐藏的ng-model="vm.times.minutes",但由于我需要在应用程序中重复使用它,因此我不想这样做。或者至少我想构建某种通用指令,该指令将控件上具有ng-model的能力与显示与模型值不同的value的能力合并,如果可能的话。

    有什么建议吗?

1 个答案:

答案 0 :(得分:0)

啊哈 - 一个选项是让from flask import Flask, render_template from flask import jsonify, make_response app = Flask(__name__) app.debug = True @app.route('/skills') def skillchart(): return render_template('skills.html') @app.route('/api/skills') def getSkills(): skills = { "HTML": [], #jsonify does not support arrays, but only dictionaries. "CSS": [], # also I might add skills with subskills "SASS": [], "Bootstrap": [] } return jsonify(skills) if __name__ == '__main__': app.run() 成为input

label

然后它会正确显示并验证。