Я пытаюсь отобразить данные с контроллера Odata Web Api с помощью JayData и Angular. Мне удалось выйти на сцену, где данные возвращаются в Firebug, но я не могу получить данные в своем контроллере или в представлении.Первый запрос JayData с Angular and Odata
Вот мой app.js:
var app = angular.module("app", ["localization", "ngResource", "ngRoute", "jaydata"]).
config(function ($routeProvider, $locationProvider) {
$routeProvider.
when('/Admin/Stages/List', { templateUrl: '/Content/Templates/Stages.html' }).
otherwise({ redirectTo: 'Admin/Teams/List', templateUrl: '/Content/Templates/Teams.html' });
$locationProvider.html5Mode(true); //will use html5 mode rather than hashbang where available
});
var StageListController = function ($scope, $data) {
$scope.stages = [];
$data.initService('http://lj.cloudapp.net/odata')
.then(function (lj) {
$scope.lj = lj;
$scope.stages = lj.Stages.toLiveArray();
});
};
Это мой шаблон:
<table class="table table-striped table-condensed table-hover">
<thead>
<th>
Stage Id
</th>
<th>
Stage Name
</th>
</thead>
<tbody>
<tr ng-repeat="stage in stages | filter:search:StageName | orderBy:'StageId'" id="stage_{{stage.id}}">
<td>{{stage.StageId}}</td>
<td>{{stage.StageName}}</td>
</tr>
</tbody>
И это мое мнение:
<div data-ng-app="app">
<div class="container" ng-controller="StageListController">
<div ng-view></div>
</div>
</div>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
<script src="@Url.Content("~/Scripts/datajs-1.1.1.min.js")"></script>
<script src="@Url.Content("~/Scripts/angular.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/angular-resource.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/angular-route.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/localize.js")" type="text/javascript"></script>
<script src="http://include.jaydata.org/jaydata.js"></script>
<script src="http://include.jaydata.org/jaydatamodules/angular.js"></script>
<script src="@Url.Content("~/Scripts/angular/app.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/angular/lj.js")" type="text/javascript"></script>
Кодовые достигает . то в Контроллере, но ничего не заполняется в $ scope.stages. Любая помощь могла бы быть полезна.
РЕДАКТИРОВАТЬ:
Я изменил выше следующее: ошибки входа
var StageListController = function ($scope, $data) {
$scope.stages = [];
$data.initService('http://lj.cloudapp.net/odata')
.then(function (context) {
alert(context);
$scope.context = context;
$scope.stages = context.Stages.toArray().then(function (stage) {
console.log("stage[10] is:");
console.log(stage[10]);
stage.forEach(function (p) {
console.log(stage.StageName);
});
})
.fail(function (r) {
console.log(r);
});
});
};
EDIT 2:
Переключение с datajs 1.1.1 1.0.3, кажется, решить эту проблему
Что такое ваш вопрос? –
Почему $ scope.stages не заполняется? Могу ли я изменить код, чтобы получить доступ к данным, возвращаемым контроллером Odata? – user517406
Вы можете посмотреть сайт обзора кода, если вы ищете обзор кода. Если есть конкретная проблема или ошибка, вы можете получить дополнительную помощь здесь. –