<body ng-controller="StockController as stockCtrl">
<div ng-repeat="obj in stockCtrl.stocks" class="stock">
<h1 class="text-center">{{obj.resource.fields.symbol}}</h1>
<h1 class="text-center">{{obj.resource.fields.price | currency }}</h1>
<div class="row">
<input type="text" class="form-control target-price" ng-model="stock.high">
<button class="btn btn-primary">Watch</button>
<input type="text" class="form-control target-price" ng-model="stock.low">
{{stock}}
</div>
</div>
</body>
コントローラここ角度NGリピートすべてクリア値
function StockController($http, $interval){
var stockCtrl = this;
stockCtrl.stocks = [];
$interval(function(){
$http.jsonp('http://finance.yahoo.com/webservice/v1/symbols/APPL/quote?format=json&callback=JSON_CALLBACK')
.success(function(data){
stockCtrl.stocks = data.list.resources;
});
},2000);
}
毎秒AjaxはRESTからデータをプルし、配列に結果を置きます。私はその配列をng-repeatでループして、それらの値をビューに表示します。 ng-repeatには2つの他のng-model値があります。ビューのレンダリングを繰り返しても、他のng-model値もクリアされます(この場合、「high」と「low」)。なぜこれが起こっているのですか?これを防ぐ方法は?
ここでは風景があります.Ajaxは複数の株を取得します。特定の株式が高値または低値に達したときに売りたいので、私は各株に対して異なる高値と低値を設定します。だから、私はそれらの高値と低値がそれぞれの株式のためにそこにとどまることを望みます。唯一の株価は、私がそのハイとロー
「高」と「低」は何ですか? 'obj.high'や' obj.low'のようなものではないでしょうか?あなたは常に 'ng-model'にオブジェクトを持つという基本的なルールを破っています。プリミティブは継承を持たず、 'ng-repeat'は子スコープを作成します – charlietfl
が更新されました。しかし、同じ問題 –
@LokeshCherukuri:あなたはこのような何かを持っている.... this.stock = {}; this.stock.high = "somevalue"; this.stock.low = "somevalue"; – Thalaivar