質問させてください。Angularを用いて、
ボタンを押すとフォーカスが当たるinputタグで試行錯誤しています。
技術書を参考に以下のようにdirectiveをつくり試しているのですが、エラー(elem.focus is not a function)がどうやっても消えず困っています... directiveは確かに呼ばれていてどうやら、jsの内容に問題がありそうなのですが特定できません... バージョンは1.4.7を使っています。初歩的な質問ですみませんが、どうかよろしくお願いします
javascript
1-- app.coffee 2window.App = angular.module('app', ['myInputFocus'])
javascript
1-- InputCtrl.coffee 2App.controller 'InputCtrl', ($scope) -> 3 $scope.focusOnInput = -> 4 alert 'called.' 5 $scope.focused = true 6 return
javascript
1-- myInputFocus.js 2angular.module('myInputFocus', []).directive('myInputFocus', function() { 3 return { 4 restrict: 'A', 5 scope: { myInputFocus: '=' }, 6 link: function(scope, elem, attrs) { 7 scope.$watch('myInputFocus', function(value) { 8 if (value) { elem.focus(); } 9 }); 10 elem.on('blur', function() { 11 scope.$apply(function() { 12 scope.myInputFocus = false; 13 }); 14 }); 15 } 16 }; 17});
html
1-- index.html 2<div ng-controller="InputCtrl"> 3 <button ng-click="focusOnInput()">click me.</button> 4 <input type="input" my-input-focus="focused">
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。