如何在指令中设置ng模型的有效性?

时间:2017-01-02 17:01:20

标签: angularjs

我有这个过度简化的指令来获取电话号码,如果电话号码小于10位,我希望ng-model无效。我正在测试$ setValidity,但并不是说这不是一个函数。

angular.module('valkyrie').directive('phonenumber', function(){

return{
scope: {phonemodel: '=model'},
template: '<input ng-model="inputValue" type="tel" class="form-control">',
link: function(scope, element, attributes){
  scope.$watch('inputValue', function(value, oldValue) {
    value = String(value);
    var number = value.replace(/[^0-9]+/g, '');
    scope.phonemodel = number;
    scope.phonemodel.$setValidity('phone', false);
    console.log(scope.phonemodel);
  });
},
}
});

1 个答案:

答案 0 :(得分:0)

正如Aluan Haddad在评论中提到的,你需要在你的指令中要求describe("Number", function() { it("Should return a string value", function() { expect(name).to.be.a('string'); }) }); 指令。这样您就可以访问ngModel,然后就可以ngModelController

在此处查看有效的演示:http://codepen.io/miparnisari/pen/LxPoVw

ngModelController.$setValidity