2015-12-17 59 views
0

我有一個輸入框它有一個列表建議它。我希望那些建議僅在光標聚焦輸入框時才顯示&當光標從輸入框中移除時,隱藏提示。當onFocus和hide和onBlur在角度js上合成時顯示

目前我正在以下面的困難方式做它。

HTML

<input ngFocus="showSuggesions('div_id') ng-blur="hideSuggesions('div_id')" > 

的JavaScript

$scope.showSuggessions = function(div_id){ 
     document.getElementById(div_id).style.display = "block"; 
    } 
    $scope.hideSuggessions = function(div_id){ 
     document.getElementById(div_id).style.display = "none"; 
    } 

什麼,我想要的是

<input ngFocus=(iftrue ? ngShow.div_id : ngHide.div_id)> 

我是新來angularJS,我以爲以簡單的方式做會做這個代碼更具可讀性。我不知道AngulaJS的許多功能。如果這個問題完全沒有意義,我很抱歉。

+2

你可以使用CSS':focus' https://jsfiddle.net/6auzow11/ –

+0

感謝你讓它比預期更容易 –

回答

2

這是怎麼回事?

<input ng-focus="showSuggestions = true" ng-blur="showSuggestions = false" > 
<div id="div_id" ng-show="showSuggestions"></div> 

div是包含建議的元素。在你的輸入焦點上,你會顯示div和blur,你會隱藏它。請注意,模糊不同,「移動光標」不一樣。

小心「showSuggestions」的拼寫。

+0

感謝您的答案,這是我的預期。 –

+0

很高興爲您提供幫助,ng-show和ng-hide在Angular中非常有用,我隨時根據範圍內的變量使用它們顯示我想要的內容。 – Luisma