Javascript $scope.uiGrid未定义
我正在尝试使用angularjs ui grid创建一个表,但我一直被告知$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:
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 = {};