.directive('multimails', function() {
return {
require: 'ngModel',
link: function(scope, elm, attrs, ctrl, ngModel) {
var validator = function(value) {
// console.log('validator: ' + value);
if (value != '' && typeof(value) != 'undefined') {
var splitMailsArr = value.split(';');
// .filter(function(el) {return el.length != 0});
for (var i = 0; i < splitMailsArr.length; i++) {
var currMail = splitMailsArr[i];
// console.log('currMail: ' + currMail);
if (currMail != '') {
if (/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i.test(currMail)) {
ctrl.$setValidity('multimails', true);
// console.log('pass');
} else {
ctrl.$setValidity('multimails', false);
// console.log('no pass');
break;
}
}
}
return value;
}
};
//驗證規則的順序
ctrl.$parsers.unshift(validator);
ctrl.$formatters.unshift(validator);
}
};
})
星期五, 4月 03, 2015
[AngularJS] 多個信箱驗證的directive實作
記錄一下多個信箱驗證的directive實作。
星期五, 8月 15, 2014
[AngularJS] 自訂directive控制圖片找不到
如果遇到頁面的圖片載入失敗時,通常會load預設的圖片,避免有叉燒包的情況。
可以自建一個directive來處理此事件
以下是Stackoverflow的解法:
http://stackoverflow.com/questions/16310298/if-a-ngsrc-path-resolves-to-a-404-is-there-a-way-to-fallback-to-a-default
可以自建一個directive來處理此事件
以下是Stackoverflow的解法:
http://stackoverflow.com/questions/16310298/if-a-ngsrc-path-resolves-to-a-404-is-there-a-way-to-fallback-to-a-default
app.directive('errSrc', function() {
return {
link: function(scope, element, attrs) {
scope.$watch(function() {
return attrs['ngSrc'];
}, function (value) {
if (!value) {
element.attr('src', attrs.errSrc);
}
});
element.bind('error', function() {
element.attr('src', attrs.errSrc);
});
}
}
})
訂閱:
意見 (Atom)