2016-09-29 3 views
2

私は簡単な考えに悩まされています。ユーザーが入力フィールドをクリックして、入力中のテキストのみを表示するときに、「Hello」を削除するにはどうすればよいですか。AngularJSの{{expression}}の前にテキストを削除するには

H1タグ内に「Hello」が必要です。ユーザーが入力フィールドをクリックして入力を開始すると消えます。

<div> 
    <label>Name:</label> 
    <input type="text" ng-model="yourName" placeholder="Enter a name here"> 

    <h1>Hello {{yourName}}</h1> 
</div> 

jQueryを使用してH1タグを空にしたりデタッチしようとしましたが、これも式を削除します。

ありがとうございました。

答えて

7

にあなたはバインディング構文の中にそれを行うことができます:

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.min.js"></script> 
 
<div ng-app> 
 
    <label>Name:</label> 
 
    <input type="text" ng-model="yourName" placeholder="Enter a name here"> 
 

 
    <h1>{{yourName || 'Hello'}}</h1> 
 
</div>

+0

これは質問に対する最良の答えです。 – ni3aj

+0

ダニエル - その意味が... –

+0

パーフェクト!本質的に|| Helloが表示されなくなるように値をnullにしますか? – Brad

1

helloテキストを1つのスパンに保ち、それにクラスを付けることができます。

<span ng-if="yourName">hell0</span> 
1

別の変数

<h1>{{ myLabel }}{{yourName}}</h1> 

を使用して、コントローラ

$scope.myLabel = 'Text as you please'; //'' to clear 
-2

あなたspanとして内部Helloラップ:このhttp://codepen.io/Sky-123/pen/jrLBRA

希望:

<div ng-app> 
    <label>Name:</label> 
    <input type="text" ng-model="yourName" placeholder="Enter a name here"> 

    <h1><span id="temp">Hello </span>{{yourName}}</h1> 
</div> 

今、あなたはあなたの機能を動作させるために、このjqueryのを書くことができます添付

$("input").focus(function(){ 
     $("#temp").hide(); 
    }) 

    $("input").blur(function(){ 
     $("#temp").show(); 
    }) 

リンク助けて!

+0

これは角度のない方法です。 – ni3aj

+0

@Aakash - はい、あなたのコードが動作します。目標を達成する方法はいくつかあります。ダニエルが答えたような賢い方法しか取っていません。 –

+0

角度の指定は求められませんでした。そのように求められたら、私の解決策は違っていたでしょう。誰かを助けることを願っています。 @ ni3aj –

関連する問題