javascript - ng-show 的问题

标签 javascript angularjs angularjs-directive

验证此示例中的第一个字段时,我无法显示错误消息。

只有第二个字段显示消息。 你能告诉我我的代码有什么问题吗?

http://plnkr.co/edit/OXtrm9skUUe1D6e8F8gw?p=preview

var app = angular.module('plunker', []);

    app.directive('gaTime', function () {
        var EMAIL_REGX = /^(?:2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$/;
        return {
            restrict: 'E',
            scope: {
                timeInfo: '=info' // Unique to directive scope
            },
            template: '<input type="text" name="operativeToTime" data-ng-model="timeInfo" data-ng-required="false" data-ng-pattern="/^(?:2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$/">'
        };
    });

app.controller('MainCtrl', function($scope) {
    // Default values
    $scope.operativeFromTime = '00:00:00';
    $scope.operativeToTime = '23:59:59';
});


  <form name="addDeviceForm" data-ng-submit="submitForm(addDeviceForm.$valid)" novalidate>
            <data-ga-time name="operativeFromTime" info="operativeFromTime"></data-ga-time>
            <span data-ng-show="addDeviceForm.operativeFromTime.$invalid">+++ INVALID FROM.</span>
            <br>

            <data-ga-time name="operativeToTime" info="operativeToTime"></data-ga-time>
            <span data-ng-show="addDeviceForm.operativeToTime.$invalid">+++ INVALID TO.</span>
  </form>

最佳答案

问题是 name 在指令的模板中是硬编码的。

要解决此问题,请使用模板函数将 name 属性动态添加到您的模板字符串中:

template: function(tElem, tAttrs){

    return '<input type="text" name="' + tAttrs.name +
           '" data-ng-model="timeInfo" data-ng-required="false" 
            data-ng-pattern="/^(?:2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$/">';
}

Demo Plunker

注意:form validation in Angular 需要name 属性

关于javascript - ng-show 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24768915/

相关文章:

Javascript 匹配正则表达式链接

javascript - jquery - 限制div中的单词数

Javascript 替换所有包含 '[]' 的字符串不起作用

javascript - 本地主机的 Google map api 使用

angularjs - ng-click 在指令模板中不起作用

javascript - TinyMCE 保持隐藏状态(uvw-dialog-open)

javascript - 将图表工具提示自定义为带有指向饼图段的线的标签

javascript - 缩小是如何工作的,它会影响 Angular 嵌套对象吗?

angularjs - AngularJS 中 html5 音频元素的 ng-model

javascript - 我们应该在 Angular js 版本 1.3.14 中使用 $locationProvider 吗