2016-03-29 15 views
0

text inputをスコープ内の変数にリンクしたいと思っています。しかし、私はplaceholderが何も表示されないようにしたい。しかし、この変数の内容は継続しています。どうして?ng-modelを使用しているときにプレースホルダーを空にする

var app = angular.module('example', []); 
 

 
app.controller('MainCtrl', function($scope) { 
 
    $scope.hello = 'hello'; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<body ng-app="example" ng-controller="MainCtrl"> 
 
    <input type="text" ng-model="hello" placeholder=""> 
 
</body>

+0

要素の値 ''に角括弧 '$ scope.hello'があり、プレースホルダーとは関係ありません。もっと具体的にしてください。 – Wtower

+0

私はスコープ内に変数を持っており、それを編集したいと思います。この場合、私は "hello"を "hello123456"に変更して、入力テキスト – panagulis72

+0

に変更したいと思っています。なぜあなたがそれをやり遂げることができないように思われるのか、まったく不明です。 – Wtower

答えて

0

あなたはhelloと呼ばれるスコープ内の変数を、持っています。同じ変数にバインドされている<input>要素があります。必然的に、要素はその変数の同じ値を持ちます。

私はあなたのコメントから理解しているように、input要素がその変数に束縛されないことを望みます。この場合、いくつかの選択肢があります。たとえば、スコープ内に別の変数を設定することです。

次に、ngChangeを使用して、入力が変更された場合にのみ最初の変数を更新し、その初期値を維持することができます。

var app = angular.module('example', []); 
 

 
app.controller('MainCtrl', function($scope) { 
 
    $scope.hello = 'hello'; 
 
    $scope.field = ''; 
 
    $scope.change = function() { 
 
    $scope.hello = $scope.field; 
 
    }; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<body ng-app="example" ng-controller="MainCtrl"> 
 
    <input type="text" ng-model="hello" ng-change="change()"> 
 
</body>

+1

ありがとうございました! – panagulis72

0

あなたはまた、値「ハロー」があり、あなたの範囲に存在する変数「こんにちは」にご入力ボックスの値をバインドしているため。プレースホルダはそれと関係がありません。表示されるテキストは入力ボックスの値です。入力ボックスをクリアするには、スコープ変数を空の文字列に設定します。

-1

を入力するか、初期化しないでください。入力タグで初期化されますので、そのまま使用することができます。

​​

+0

しかし、$ scope.helloが既にアプリケーションを開く前に値を持っていたらどうなりますか? – panagulis72

+0

$ scope.helloに設定した値は、ここに表示されます。表示しない場合は、$ scope.helloを空にします。 – mkkhedawat

+0

$ scope.helloを空に設定せずに入力タイプをクリアする方法がある場合、これは私の質問です – panagulis72

関連する問題