質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Q&A

0回答

467閲覧

AngularJSのバリデーションで、エラーメッセージをツールチップで表示したい

kajuu1000

総合スコア11

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

0グッド

0クリップ

投稿2018/03/02 09:21

実現したいこと

AngularJSでバリデーションでエラーメッセージをツールチップで表示したいです。
以下のjQueryとbootstrap.jsで作成されたDirectiveを参考に作成しているのですが、
ui-bootstrapで実現するにはどのようにすればよいでしょうか?

参考サンプル

http://jsfiddle.net/y9ujn/5/

試したこと

jQueryでtooltipを設定している箇所でui-tooltipの属性を追加しようとしたり、試しているのですが、うまくいきません。

Angularjs

1<script> 2 var app = angular.module("app", ['ui.bootstrap']); 3 app.controller('Ctrl', function ($scope) {}); 4 app.directive('validationMessage', function () { 5 return { 6 restrict: 'A', 7 priority: 1000, 8 require: '^validationTooltip', 9 link: function (scope, element, attr, ctrl) { 10 ctrl.$addExpression(attr.ngIf || true); 11 } 12 } 13 }); 14 app.directive('validationTooltip', function ($timeout) { 15 return { 16 restrict: 'E', 17 transclude: true, 18 require: '^form', 19 scope: {}, 20 template: '<span class="label label-danger span1" ng-show="errorCount > 0">hover to show err</span>', 21 controller: function ($scope) { 22 var expressions = []; 23 $scope.errorCount = 0; 24 25 this.$addExpression = function (expr) { 26 expressions.push(expr); 27 } 28 $scope.$watch(function () { 29 var count = 0; 30 angular.forEach(expressions, function (expr) { 31 if ($scope.$eval(expr)) { 32 ++count; 33 } 34 }); 35 return count; 36 37 }, function (newVal) { 38 $scope.errorCount = newVal; 39 }); 40 41 }, 42 link: function (scope, element, attr, formController, transcludeFn) { 43 scope.$form = formController; 44 45 transcludeFn(scope, function (clone) { 46 47 / 48 var badge = element[0].firstChild; 49 var tooltip = angular.element('<div class="validationMessageTemplate tooltip-danger" />'); 50 tooltip.append(clone); 51 element.append(tooltip); 52 $timeout(function () { 53 54 55 scope.$field = formController[attr.target]; 56 badge.attr( 'uib-tooltip', "test") 57 58 }); 59 }); 60 } 61 62 } 63 }); 64</script>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問