可以克隆ngList你讓我們說intList中指令,並且只需添加有parseInt
功能:
app.directive('intList', function() {
return {
restrict: 'A',
priority: 100,
require: 'ngModel',
link: function(scope, element, attr, ctrl) {
var ngList = attr.ngList || ', ';
var trimValues = attr.ngTrim !== 'false';
var separator = trimValues ? ngList.trim() : ngList;
var parse = function(viewValue) {
// If the viewValue is invalid (say required but empty) it will be `undefined`
if (!angular.isDefined(viewValue)) return;
var list = [];
if (viewValue) {
angular.forEach(viewValue.split(separator), function(value) {
if (value) list.push(parseInt(trimValues ? value.trim() : value));
});
}
return list;
};
ctrl.$parsers.push(parse);
ctrl.$formatters.push(function(value) {
if (angular.isArray(value)) {
return value.join(ngList);
}
return undefined;
});
// Override the standard $isEmpty because an empty array means the input is empty.
ctrl.$isEmpty = function(value) {
return !value || !value.length;
};
}
};
});
plunker: http://plnkr.co/edit/mEBm05gnfyM03xy9QlZh?p=preview
這完美的作品。我從來沒有想過只是克隆/定製ng-list! – Nick