私はこのコードをCartoDBで使用しています。そのJSライブラリを使用してクエリを実行し、いくつかのデータを返すと仮定します。私はいくつかの結果をに加えて、done()関数の中で動作します。 2番目のメソッドは、AngularJSのスコープ変数として結果を使用/設定しようとしますが、私はそれを失います。ここにいくつかのコード例があります。 編集:私の謝罪は、 "doesnt work"は、私はいつもmvcTotal = 0のデフォルト値を取得することを意味し、JS内で計算されるものとは異なる。AngularJSスコープ変数が約束内に設定されていません
angular.module('angMvcApp')
.controller('DataCtrl', ['$scope', '$routeParams', function ($scope, $routeParams) {
var borough = $routeParams.borough;
var sql = new cartodb.SQL({user: 'wkaravites'});
var table = 'qiz3_axqb';
var mvcTotal = 0;
if (borough != null) {
$scope.borough = borough;
} else {
$scope.borough = "Data Overview";
sql.execute("select borough, count(*) from qiz3_axqb group by borough")
.done(function (data) {
$.each(data.rows, function (index, value) {
console.log("pizza: " +value['count']);
mvcTotal += value['count'];
//$('#' + value['borough'] + '').text(value['count']);
//$('#boroughList').append('<h2>' + value['borough'] + '</h2>');
});
//I see this correct
console.log(mvcTotal +" totals");
//This doesn't work
$scope.mvcTotal = mvcTotal;
})
.error(function (errors) {
// errors contains a list of errors
console.log("errors:" + errors);
});
console.log(mvcTotal+" test test");
//This doesn't work
$scope.mvcTotal = mvcTotal;
//This works
#scope.mvcTotal = 57;
}
}]);
私は通常の変数をAngularスコープ変数にどのように変換していますか? JSコンソールをチェックすると、ピザ付きのログが表示され、最後に「合計」が付加された正しい番号が表示されます。ここで
は、HTMLビューである:あなたのDBの呼び出しから返されたデータをどうしたい
<div class="container">
<div class="row">
<div class="col-lg-12">
<h1>{{borough}}</h1>
<p>{{mvcTotal}} motor vehicle collisions</p>
</div>
</div>
</div>
クエリを実行する前に、$ scope.mvcTotalを一番上に定義しようとしています。例えば$ scope.mvcTotal; var sql = new cartodb.SQL({user: 'wkaravites'}); var table = 'qiz3_axqb'; var mvcTotal = 0; – user2085143
「動作しません」があまりにも曖昧です。プログラムの期待される動作が何であるかはわかりません。 htmlビューに表示されないことを意味しますか? htmlビューを含める必要があります。 console.logメッセージが間違っているだけですか? –