我有一个负责创建网格的指令:
app.directive('gridControl', function () {
return {
restrict: 'E',
scope: {
objectType: "=objecttype",
gridFields: "=gridfields"
},
templateUrl: '/app/templates/modules/gridControl.html',
controller: 'gridControlController'
};
});
控制器如下所示:
standardApp.controller('gridControlController', ["$scope", "$stateParams", "gridControlService",
function gridformController($scope, $stateParams, gridControlService) {
var fields = [];
gridControlService.getGridStructure($stateParams.id).then(function (result) {
fields = result.data.Fields;
});
$scope.mainGridOptions = fields;
}]);
当我想在我的视图中操作$ scope.mainGridOptions时它是空的!任何人都可以帮我解决这个问题吗?
*注意:我想将字段数组提供给当时函数之外的$ scope.mainGridOptions。
答案 0 :(得分:0)
原因是关于gridControlService.getGridStructure($..
的{{1}}。因此,asynchronous
永远不会保持,直到完成js
事件,它将执行脚本的其余部分。因此asynchronous
将在$scope.mainGridOptions = fields;
之前执行,这意味着.then(function (result)
只是一个空数组。
我认为fields
没有必要,你有更好的方法来实现这一点。尝试如下
$scope.mainGridOptions = fields;