пытается просто вернуть данные сервера обратно в директиве нг-повтора на моем HTML, но это делает пустые <li>
элементы:AngularJS нг-Repeat директива выдает
Мой HTML:
<div class="col-md-4">
<ul>
<li ng-repeat="dim in settings.dimenDS">{{dim.data.name}}</li>
</ul>
</div>
В моей JavaScript код контроллера:
(function() {
'use strict';
angular.module('rage')
.controller('GridSettingsCtrl', ['$scope', '$modalInstance', 'datacontext', 'widget', gridSettings]);
function gridSettings($scope, $modalInstance, datacontext, widget) {
var settings = this;
settings.myName = "Bob Mazzo";
settings.dimenDS = getDimFromServer();
function getDimFromServer() {
datacontext.getDimensionsFromServer().then(
function (data) {
return data;
}
);
}
}; // end of gridSettings()
})();
установка для углового-Bootstrap окна модального, который содержит мой HTML является:
settingsModalOptions: { // config popup
templateUrl: 'app/shared/include/grid-config/widget-config-grid.html',
controller: 'GridSettingsCtrl as settings'
}
Объект data
имеет следующую схему:
{
"status": "SUCCESS",
"messages": [],
"data": [
{
"name": "Snapshot_Id",
"type": "integer"
},
{
"name": "tradeId",
"type": "varchar"
},
{
"name": "dealId",
"type": "varchar"
},
{
"name": "BookingCountry",
"type": "varchar"
},
{
"name": "BookingLocation",
"type": "varchar"
},
{
"name": "Broker",
"type": "varchar"
},
{
"name": "BuySell",
"type": "varchar"
},
{
"name": "CCY2",
"type": "varchar"
},
{
"name": "CloseOutNettingAgreementId",
"type": "varchar"
},
{
"name": "CollateralAgreementId",
"type": "varchar"
},
{
"name": "Counterparty",
"type": "varchar"
},
{
"name": "DealDate",
"type": "timestamp"
},
{
"name": "DealIssuer",
"type": "varchar"
},
{
"name": "Delta",
"type": "float"
}
]
}
Я буду продолжать поиск и устранение неисправностей. Тем временем ваш совет приветствуется.
спасибо, Боб
В 'then' вам необходимо вернуть 'data.data', $ http' then 'разрешаются с объектом ответа, а не только с телом ответа. –
'settings.dimenDS' должен находиться в' $ scope', чтобы быть доступным из представления. Кроме того, учитывая формат вашего ответа, вам нужно сделать так, как указано выше (return data.data), или изменить свой 'ng-repeat' на цикл через' settings.dimenDS.data' и отобразить 'dim.name'. –
@DavidSpence - это область, использующая синтаксис «контроллер как» - 'controller: 'GridSettingsCtrl as settings''. См. Исправленное сообщение выше. Спасибо. –