【问题标题】:displaying data ng-repeat from $scope.items query not working显示来自 $scope.items 查询的数据 ng-repeat 不起作用
【发布时间】:2016-07-25 19:15:46
【问题描述】:

我不知道怎么了,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>

运行网站:

来自浏览器的 api 调用:

【问题讨论】:

    标签: javascript angularjs json asp.net-apicontroller


    【解决方案1】:

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

    从屏幕截图看来,EventListFactory.js 中的records 不返回数组而是返回一个承诺。

    EventListController.js 中而不是

    $scope.items = EventListFactory;

    尝试类似:

    var promise = EventListFactory;
    promise.then(function(data){
        $scope.items = data;
    })
    

    【讨论】:

    • 它抱怨'then' undefined
    • 你能告诉我 console.log(promise) 显示什么吗?
    猜你喜欢
    • 2016-09-04
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    相关资源
    最近更新 更多