Angularjs 数据未绑定/更新到模板?

Angularjs 数据未绑定/更新到模板?,angularjs,Angularjs,我有一个Angular应用程序,可以从本地CSV文件中读取数据。然而,有时(可能有10-20%的时间)数据似乎没有被绑定,因此我的页面缺少所有的{{data}插值。但是如果我刷新页面(有时需要多次刷新),数据最终会出现 我想不出是什么问题。由于应用程序只是从本地CSV文件中读取数据,因此获取数据应该不会有问题,而且过程应该是确定性的 此外,如果我将数据记录到控制台,那么控制台会适当地显示数据。由于某种原因,该页面无法显示它。(例如,我的页面上的{{{company.name}}是空的,但是如果我

我有一个Angular应用程序,可以从本地CSV文件中读取数据。然而,有时(可能有10-20%的时间)数据似乎没有被绑定,因此我的页面缺少所有的
{{data}
插值。但是如果我刷新页面(有时需要多次刷新),数据最终会出现

我想不出是什么问题。由于应用程序只是从本地CSV文件中读取数据,因此获取数据应该不会有问题,而且过程应该是确定性的

此外,如果我将数据记录到控制台,那么控制台会适当地显示数据。由于某种原因,该页面无法显示它。(例如,我的页面上的
{{{company.name}}
是空的,但是如果我在设置
$scope.company=..
变量之后立即在代码中调用
console.log(company.name)
,我确实会看到公司名称显示在我的控制台中)

你知道问题出在哪里吗?问题是Angular不知道由于某种原因正在设置/更新变量

编辑:这是我的控制器和HTML或多或少的样子

var-app=angular.module(“app”、“ngRoute”、“ngSanitize”);
app.controller(“CompanyController”、[“$scope”、“$http”、“$routeParams”、“$window”、“FlashService”、“$location”、函数($scope、$http、$routeParams、$window、FlashService、$location){
$scope.data=[];
$scope.index=parseInt($routeParams.i==undefined?0:$routeParams.i);
d3.csv(“data/data.csv”,函数(数据){
$scope.data=数据;
$scope.company=$scope.data[$scope.index];
});

}]);
仅当使用
$http
制作XHR时,才刷新视图

在这里,您可以通过
d3.csv
调用外部世界。因此,您需要告诉Angular在数据可用时运行消解

  d3.csv("data/data.csv", function(data) {
    $scope.data = data;
    $scope.company = $scope.data[$scope.index];
    $scope.$apply(); // here
  });

首先检查控制台是否有错误,我检查了JS控制台——没有错误。我想我知道。问题是在csv加载后摘要将不会运行。您应该使用$asyncApply或$timeout手动运行它,并使用$scope检查此想法。$apply();这是一个非常糟糕的主意。您可以在随机时间内获得已在进行中的$digest。不要这样做,也不要建议他人