显示来自$ scope.items查询的数据ng-repeat不起作用

时间:2016-04-05 17:35:35

标签: javascript angularjs json asp.net-apicontroller

我不知道出了什么问题, ng-repeat 不是 填写我的div上的信息,请看下面的内容 和建议我出错了

app.js

var mainApp = angular.module('mainApp', ["ngRoute", "ngResource"]);
mainApp.factory('EventListFactory',['$resource', EventListFactory]);
mainApp.controller('EventListCtrl', ['$scope','EventListFactory', EventListCtrl]);
var configFunction = function ($routeProvider) {
    $routeProvider.
        when('/Register', {
            templateUrl: 'routesDemo/Register'
        })
        .when('/UpdateProfile', {
            templateUrl: 'routesDemo/UpdateProfile'
        })
        .when('/Events', {
            templateUrl: 'routesDemo/Events', 
            controller: EventListCtrl,
        })
        .when('/routeThree', {
            templateUrl: 'routesDemo/three'
        });
}
configFunction.$inject = ['$routeProvider'];
mainApp.config(configFunction);

EventListFactory.js

var EventListFactory = function ($resource, $location) {

        var baseUrl = "";
        if (window.location.hostname == 'localhost') {
            baseUrl = "http://localhost:52182/api/Events/GetEvents/";
        }
        else
        {
            var deployAt = window.location.href.substring(0, window.location.href);
            baseUrl = deployAt + "/api/Events/GetEvents";
        }

        var respone = $resource(baseUrl, null, { query: { method: 'GET', isArray: true, url: baseUrl }, get: { method: 'GET', url: baseUrl } });
        console.log("api json at :" + baseUrl);
        var records = respone.query();
        console.log(records);
        return records;
}

EventListController.js

var EventListCtrl = function ($scope, EventListFactory) {
    $scope.Message = 'I work';
    $scope.items = EventListFactory;
};

EventListCtrl.$inject = ['$scope'];
html中的

<div id="listView" >
    <h1 class="form-signin-heading">For real {{Message}}</h1>
    <div ng-controller="EventListCtrl">
        <p class="form-signin-heading">Populated Data</p>
        <div ng-repeat="item in items ">
            <span class="control-label">Heading : </span> {{item.Heading}}
            <br/>
            <span class="control-label">Event Date : </span> {{item.EventDate}}
            <br/>

        </div>
    </div>
</div>

运行网站:

enter image description here

来自浏览器的

api来电: enter image description here

1 个答案:

答案 0 :(得分:0)

ng-repeat的代码是正确的,但你的项目是一个空数组,因此不会显示任何内容。

从屏幕截图中可以看出,<!-- HTML --> <a id="content-link" href="javascript:toggle('content')">Content Toggle Linktext</a> <div class="JsHide" id="content"> <p>Content Text blablabla. Inherits class "JsHide" from surrounding div and "CssClassJsLoad" from surrounding html-tag</p> </div> 中的#include <algorithm> #include <iostream> #include <iterator> #include <vector> #include <experimental/vector> int main() { std::vector<int> ints { -1, 0, 1 }; std::experimental::erase_if(ints, [](int x){ return x < 0; }); std::copy(ints.begin(), ints.end(), std::ostream_iterator<int>(std::cout, ",")); } 不会返回数组,而是返回承诺。

records而不是

  

$ scope.items = EventListFactory;

尝试类似:

EventListFactory.js