【发布时间】:2016-07-29 18:00:09
【问题描述】:
我写了这个指令(效果很好)但我在测试它时遇到了麻烦:
module.exports = /*@ngInject*/ function($filter) {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attrs, ngModel) {
ngModel.$parsers.push(function(value) {
var phoneNumber;
if (scope.country === 'US' && value.length >= 10) {
phoneNumber = value.replace(/[ &()-.]+/g, '');
ngModel.$setViewValue(phoneNumber);
ngModel.$render();
} else {
phoneNumber = value;
}
return phoneNumber;
});
}
};
};
在阅读了 200 篇文章并失败后,我基本上处于第一方:
var factory = require('./us-phone.directive.js');
describe('US Phone Number directive', function() {
it('should remove dashes, parantheses, and spaces' , function() {
var value = '(555)555-5555';
var phoneNumber = '';
phoneNumber.should.equal('5555555555');
});
});
【问题讨论】:
-
你想做什么?错误在哪里?
-
测试失败,很抱歉没有更清楚
标签: javascript angularjs unit-testing directive phone-number