Javascript $scope.uiGrid未定义

Javascript $scope.uiGrid未定义,javascript,angularjs,mean-stack,angular-ui-grid,Javascript,Angularjs,Mean Stack,Angular Ui Grid,我正在尝试使用angularjs ui grid创建一个表,但我一直被告知$scope.uiGrid未定义,有人能告诉我我做错了什么吗 requestYelp.success( function(obj) { console.log(obj.businesses[0].name); $scope.gridOptions = { enableSorting: true, rowHeight:

我正在尝试使用angularjs ui grid创建一个表,但我一直被告知$scope.uiGrid未定义,有人能告诉我我做错了什么吗

    requestYelp.success(
    function(obj) 
    {
        console.log(obj.businesses[0].name);

        $scope.gridOptions = {
            enableSorting: true,
            rowHeight:100,
            columnDefs: [
            { field: 'name' },
            { field: 'company'  },
            { field: 'image', cellTemplate:"<img width=\"50px\" ng-src=\"{{grid.getCellValue(row, col)}}\" lazy-src>"}
            ],

            data:[
            {name:obj.businesses[0].name,company: "Company1", image: obj.businesses[0].image_url},
            {name:obj.businesses[1].name,company:"Company2",image:obj.businesses[1].image_url},
            {name:obj.businesses[2].name,company:"Company3",image:obj.businesses[2].image_url}
            ]
        };
    }
);
}]);
requestYelp.success(
功能(obj)
{
console.log(对象业务[0].name);
$scope.gridOptions={
enableSorting:true,
行高:100,
columnDefs:[
{字段:'名称'},
{字段:'公司'},
{字段:“图像”,单元格模板:}
],
数据:[
{name:obj.businesss[0]。名称,公司:“Company1”,图像:obj.businesss[0]。图像\u url},
{name:obj.businesss[1]。名称,公司:“Company2”,图像:obj.businesss[1]。图像\u url},
{名称:obj.businesss[2]。名称,公司:“Company3”,图像:obj.businesss[2]。图像\u url}
]
};
}
);
}]);

console.log(obj.businesss[0].name)
会将正确的数据放入控制台,因此obj变量没有问题。代码只有在进入gridOptions时才会中断。

我不知道ui网格如何工作的确切细节。但我猜ui grid指令立即期望
$scope.gridOptions
$scope
上可用。但是,只有在异步http请求完成加载后,才能分配
$scope.gridOptions

在执行http请求之前,应尝试提供一个空的(或充分准备的)
$scope.gridOptions

或者,有一个技巧可以通过在同一元素上添加额外的
ng if
来延迟任何指令的链接。设置如下内容:

ng如果“当前传加载完毕”


success()
函数中,只需设置
$scope.whenhtprequesthassfinishedloading=true

我知道这并不能回答OP的问题,但这是谷歌在搜索“ui grid$scope.uiGrid undefined”时的第一次点击

当我发现自己遗漏了什么时,我觉得自己像个十足的白痴,但如果其他人遇到同样的问题,请确保您的ui网格指令值

    <div ui-grid="gridOptions"></div>
    $scope.gridOptions = {};