Мне нужно поле ввода с маской, но я хочу, чтобы модель сохраняла маскированное значение.Директива AngularJS для форматирования номера формата модели
Номер телефона должен быть отображен и сохранен в формате db в таком формате: ## ## ## ## ##
.
Я использую эту библиотеку: formatter.js в веб-приложении, и я стараюсь понять, что является лучшим способом использовать его с Angular для мобильного приложения.
Вот то, что я до сих пор:
Директива:
.directive('curubaTelephone', function() {
return {
restrict: 'AC',
replace: false,
link: function (scope, element) {
element.formatter({
'pattern': '{{99}} {{99}} {{99}} {{99}} {{99}}',
'persistent': false
});
}
}
})
HTML:
<label class="item item-input item-stacked-label">
<span class="input-label">Fixe</span>
<input type="text" placeholder="fixe" ng-model="fonction.perso_fixe" class="curubaTelephone">
</label>
Я добавил скрипт в index.html:
<script src="lib/formatter/dist/jquery.formatter.min.js"></script>
Консоль возвращает:
TypeError: element.formatter is not a function
at link (http://localhost:8100/js/directives.js:48:25)
at invokeLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:16855:9)
at nodeLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:16365:11)
at compositeLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:15714:13)
at compositeLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:15717:13)
at publicLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:15593:30)
at $get.boundTranscludeFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:15732:16)
at controllersBoundTransclude (http://localhost:8100/lib/ionic/js/ionic.bundle.js:16392:18)
at ngRepeatAction (http://localhost:8100/lib/ionic/js/ionic.bundle.js:33138:15)
at Object.$watchCollectionAction [as fn] (http://localhost:8100/lib/ionic/js/ionic.bundle.js:22746:13) <input type="text" placeholder="fixe" ng-model="fonction.perso_fixe" class="curubaTelephone ng-pristine ng-untouched ng-valid">
По умолчанию AngularJS не использует jQuery вообще, только его небольшой поднабор, называемый jqLite. Чтобы использовать плагины jQuery, вам также необходимо включить jQuery - я бы удостоверился, что вы это сделали. Не забудьте включить его (в index.html) до самого Angular, иначе он не будет распознан им, и он все равно будет использовать jqLite. – bardzusny
Хорошо, это была проблема !! Большое спасибо @bardzusny. Пожалуйста, напишите ответ, чтобы принять его. – curuba