【发布时间】:2015-10-08 18:58:11
【问题描述】:
我正在使用来自 AngularJS-UI 的ui-mask。我想根据 HTML 输入类型动态设置属性。
这是你通常使用这个指令的方式:
<input type="tel" class="form-control"
ng-model="Model.Homephone" placeholder="Home Phone"
ui-mask="(999) 999-9999" ui-mask-placeholder/>
这样工作得很好。现在,我创建了一个指令,该指令只是根据输入类型添加此属性及其值。
自定义指令:
angular.module('App').directive("uiMaskType", ['$log', function ($log) {
return {
restrict: "A",
require: 'ngModel',
link: function (scope, element, attributes, ngModel) {
$log.log(element.attr('type'));
switch(element.attr('type')) {
case 'tel':
element.attr('ui-mask', '(999) 999-9999');
break;
case 'text':
element.attr('ui-mask', '999-99-9999');
break;
}
}
};
}]);
我在输入元素中使用如下指令:
<input type="tel" class="form-control"
ng-model="Model.Homephone" placeholder="Home Phone"
ui-mask-type ui-mask-placeholder/>
当我运行页面时,结果是这样的:
<input type="tel" class="form-control"
ng-model="Model.Homephone" placeholder="Home Phone"
ui-mask-type ui-mask-placeholder ui-mask="(999) 999-9999"/>
即使属性存在,屏蔽也不起作用。我检查了 AngularJS-UI 的 mask.js 文件中指令的优先级,并尝试将我的设置更高,以便在编译 ui-mask 之前添加属性。
有人知道可能是什么问题吗?
【问题讨论】:
-
请注意此固件的构建失败:github.com/angular-ui/ui-mask
标签: angularjs angular-ui masking