2016-12-15 4 views
0

簡単な質問ですが、答えを見つけるのに苦労します。角で文字列を連結

HTML

<div class="col-sm-5"> 
<input type="text" class="form-control" placeholder="key" 
ng-model="main.key" ng-change="updateJson()"> 
</div> 
<div class="col-sm-7"> 
<input type="text" class="form-control" placeholder="value" 
ng-model="main.value" > 

JS

$scope.updateJson=function(){ 
    this.jsonObject +=this.key+":"+this.value; 
}; 

私は、テキストボックスに入力すると、それはこれを出力し、UpdateJsonにバインドされているテキストフィールドを持っています。

undefinedundefined:undefinedundefined:undefinedundefined:undefined 

タイプを正しく認識する方法で文字列を連結するにはどうすればよいですか? $logを想定し

+0

正確に何を出力していますか、見たいものは何ですか? – IonicBurger

+0

this.jsonObjectのコンテキストまたは定義が表示されません。あなたが画面上で見ているものを詳しく教えてください。最高のplunkrを提供しています。 – MoMo

+1

テンプレートのng-model = "main.key"のため、keyの値は$ scope.main.keyになります。しかし、基本的に未定義の出力が可能なさまざまな理由がありますが、@Dalorzoは言ったように、通常は「this」を使用しません。 – IonicBurger

答えて

0

がコントローラに注入され、そしてそれはあなたのビューで発生したとして、あなたは$scopeを使用し、あなたがコンソールにコロンと連結あなたの入力フィールドに入力されたキーと値が表示されるはずです

var jsonObject = "..."; 
$scope.updateJson=function(){ 
    var keyValue = $scope.key+":"+$scope.value; 
    $log.debug("keyValue is "+keyValue); 
    jsonObject += keyValue; 
}; 

を試してみてください。 コントローラ変数jsonObjectには、キーと値が追加されていなければなりません。

注: 目的は、jsonを使用して入力フォームフィールドをシリアル化することです。

var theObject = { 
    key: 'some key', 
    value: 'some value' 
} 

JSON.stringify(theObject)でシリアル化してください。