私は、ローカルのCSVファイルからデータを読み取る角度アプリを持っています。しかし、時には(たぶん10〜20%の時間)、データが拘束されていないように見えるので、私のページにはすべて{{data}}
の補間がありません。しかし、ページをリフレッシュすると(複数回のリフレッシュが必要になることもあります)、最終的にデータが表示されます。データはテンプレートにバインド/更新されませんか?
私は問題が何であるか把握できません。アプリケーションはローカルのCSVファイルからデータを読み取っているだけなので、データを取得するのに問題があってはなりません。また、プロセスは決まっているはずです。
また、データをコンソールに記録すると、コンソールにデータが適切に表示されます。何らかの理由でページに表示されないだけです。 (たとえば、{{company.name}}
が空白ですが、変数を設定した直後にconsole.log(company.name)
をコードに書き込むと、私のコンソールに会社名が表示されます)。
問題の原因は何ですか? Angularが何らかの理由で変数が設定/更新されていることを知らないという問題はありますか?
EDIT:これは私のコントローラとHTMLが多かれ少なかれ見えるものです。
var app = angular.module("app", ["ngRoute", "ngSanitize"]);
app.controller("CompaniesController", ["$scope", "$http", "$routeParams", "$window", "FlashService", "$location", function($scope, $http, $routeParams, $window, FlashService, $location) {
$scope.data = [];
$scope.index = parseInt($routeParams.i === undefined ? 0 : $routeParams.i);
d3.csv("data/data.csv", function(data) {
$scope.data = data;
$scope.company = $scope.data[$scope.index];
});
}]);
<!DOCTYPE html>
<head>
<title>Foo</title>
<script src="assets/js/d3.min.js"></script>
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/underscore.min.js"></script>
<script src="assets/js/angular.min.js"></script>
<script src="assets/js/angular-route.min.js"></script>
<script src="assets/js/angular-sanitize.min.js"></script>
<script src="app.js"></script>
<script src="routes.js"></script>
</head>
<body ng-app="app">
<div ng-view></div>
</body>
</html>
<h1>{{company.name}}</h1>
まず、エラーのコンソールを確認してください。 – Vitalii
私はJSコンソールをチェックしました。エラーはありません。 – grautur
私は知っていると思います。問題は、csvの読み込み後にダイジェストが実行されないことです。 $ asyncApplyまたは$ timeoutを使用して手動で実行する必要があります。pls – Vitalii