- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个自定义指令来匹配两个输入字段。因此,使用 ctrl.$parsers.unshift 会引发错误无法读取未定义的属性“unshift”
。无法弄清楚出了什么问题。顺便说一句,我正在使用 Angular Material 输入字段。
<md-input-container>
<label>E-Mail</label>
<input required type="email" name="clientEmail" ng-model="user.clientEmail"
minlength="10" maxlength="100" ng-pattern="/^.+@.+\..+$/" />
<div ng-messages="registerForm.clientEmail.$error" role="alert">
<div ng-message-exp="['required', 'minlength', 'maxlength', 'pattern']">
Your email must be between 10 and 100 characters long and look like an e-mail address.
</div>
</div>
</md-input-container>
<md-input-container>
<label>E-Mail wiederholen</label>
<input required type="email" name="clientEmailconfirm" ng-model="user.clientEmailconfirm"
minlength="10" maxlength="100" ng-pattern="/^.+@.+\..+$/" field-match="{{user.clientEmail}}" />
<div ng-messages="registerForm.clientEmailconfirm.$error" role="alert">
<div ng-message-exp="['required', 'minlength', 'maxlength', 'pattern']">
Your email must be between 10 and 100 characters long and look like an e-mail address.
</div>
<div ng-message="fieldMatch">E-Mail do not Match...</div>
</div>
</md-input-container>
指令:
angular.module('fieldmatcher', []);
app.directive('fieldMatch', ['$rootScope', '$compile', '$parse', function($rootScope, $compile, $parse) {
return {
require: ['ngModel'],
restrict: 'A',
scope: true,
link: function(scope, element, attr, ctrl) {
ctrl.$parsers.unshift(validate);
ctrl.$formatters.push(validate);
var validate = function(viewValue) {
var comparisonModel = attr.fieldMatch;
if (!viewValue || !comparisonModel) {
ctrl.$setValidity('fieldMatch', true);
}
ctrl.$setValidity('fieldMatch', (viewValue === comparisonModel));
return viewValue;
};
attr.$observe('fieldMatch', function(comparisonModel) {
return validate(ctrl.$viewValue);
});
}
}
}]);
最佳答案
在您的示例中,链接函数的参数 ctrl
是一个具有单个 Controller 元素的数组。
这是因为您为 require
属性使用了数组值。
请参阅docs对于 ctrl
参数:
The exact value depends on the directive's require property:
1. no controller(s) required: the directive's own controller, or undefined if it doesn't have one
2. string: the controller instance
3. array: array of controller instances
因此只需更改为 require: 'ngModel',
。
并在将变量放入解析器和格式化程序数组之前定义var validate = function(...
。
关于angularjs - ctrl.$parsers.unshift 抛出未定义的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36112170/
我有一个函数,可以保存 div 的子级列表,以便在它们移动时保持它们的原始顺序 带有子对象的对象是这样构建的: $('#container').data( 'list', $('#container'
我正在尝试将一个循环中的项目添加到我的“storedCompletion”数组的开头,但由于某种原因它只是继续循环并使浏览器崩溃。 我不明白为什么,因为在遍历数组中的每个对象后,它会检查对象 ID 是
var _array=[]; var someint=44; var somevalue='a string'; var u=[someint]; _array.unshift(u); _array[
所以我在React Native中有一个选择器,该项目基于api,并且api包含像这样的对象数组 [{"code": "N", "description": "正常", "id": 1, "note"
router.route = function (alias, pattern, action, constraints) { if (2 === arguments.length)
我的问题和这个问题一样: https://laracasts.com/discuss/channels/vue/vue-unshift-only-repeats-the-last-item 我有一个这
如何实现类似 Array unshift() 方法这样的方法来创建一个新数组?基本上类似于 Array concat() 方法,但不是将新项目放在末尾,而是将其放在开头。 最佳答案 如果您对要放置在新
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
link: function(scope, elm, attrs, ctrl) { ctrl.$parsers.unshift(function(viewValue) {
如何使用“unshift()”将数字倒置添加到数组?? 我想要一个数组 = {2018, 2017, 2016, 2015, ... , 1999}。因为'2018'是今年,'1999'是我喜欢的歌手
我正在阅读 Crockford 的 JavaScript:The Good Parts,我无法理解他在他的书中所做的 unshift 方法的重新实现。这是代码: Array.method('unshi
我正在尝试实现一个函数来将一个项目添加到数组的开头,而不使用 unshift 或 splice 方法,只是 array.length。到目前为止,我所做的一切都只是覆盖索引 0 处已经存在的内容。任何
ad.unshift()中的内容是什么意思,这里的content是什么意思。我已经阅读了 w3schools 的教程。但是他们没有提到任何关于 unshift 背后的内容。此处的任何帮助将不胜感激。
我正在尝试创建一个函数,它接受一个数组并返回偶数在奇数之前的数组。我想我应该遍历数组并用模检查每个数字的整除性。如果它是偶数,我会将该数字移到数组的前面并继续。 我已经删除了 unshift 来记录它
我想在数组的副本上取消移位,但原始数组也会修改。这是为什么? var array1 = [1, 2, 3] var array2 = array1 array2.unshift(4, 5) conso
我有一个二维数组: var sH = [['two'],['three']] 我想将“一”添加到开始/顶部,以便我的数组最终为 [['one'],['two'],['three']] 使用unshi
我正在使用 angularjs,我有这行代码: // Get our elements var elements = angular.element(options.animation.element
我使用 julia 1.4,并运行以下代码: using PyCall using JLD using ArgParse using Pandas @pyimport networkx as nx @
我正在构建一个自定义指令来匹配两个输入字段。因此,使用 ctrl.$parsers.unshift 会引发错误无法读取未定义的属性“unshift”。无法弄清楚出了什么问题。顺便说一句,我正在使用 A
我写了一篇简短的 Codepen,其中我试图在保留原始数组的同时更改临时数组,但我的两个数组都被更改了。 有人可以解释一下问题是什么吗? var x = ["x"]; abc(x); function
我是一名优秀的程序员,十分优秀!