AngularJS仅显示JSON数据中的最后一个元素

GPB

我在Angular中遇到问题,我有一个从服务获取数据的控制器。控制器从服务获取数据,但仅返回最后一个元素。

有关示例,请参见此jsfiddle:http : //jsfiddle.net/c1104q9b/

HTML:

<div ng-app="myApp">
    <div ng-controller="MessageController">
        <ul>
            <li ng-repeat="message in messageData">{{message.title}} - {{message.message}}</li>   
        </ul>
    </div>
</div>

JAVASCRIPT:

var app = angular.module('myApp', []);

app.service('messageService', function () {
    // private data
    var data= [
        {   id: 1, title: 1, message: 'some new message1',
            id: 2, title: 2, message: 'some new message2',
            id: 3, title: 3, message: 'some new message3',
            id: 4, title: 4, message: 'some new message4',
            id: 5, title: 5, message: 'some new message5',
            id: 6, title: 6, message: 'some new message6',
            id: 7, title: 7, message: 'some new message7',
            id: 8, title: 8, message: 'some new message8'
        }
    ];

    return {
        getMessages: function () {
            // Expose private data
            return data;
        },
        addMessage: function (title, message) {
            // Public function that modifies private data
            var currentIndex = data.length + 1;
            data.push({ id:currentIndex, title: title, message: 'added a new message ' + message })
        },
        deleteMessage: function (id) {
            // Public function that modifies private data
            var oldMessages = data;
            data = [];

            angular.forEach(oldMessages, function(message){
                   if (message.id !== id) data.push(message);
                });
        }
    };
});

app.controller('MessageController', ['$scope', 'messageService', function($scope, messageService) {
    $scope.messageData = messageService.getMessages();
    //messageService.addMessage('some title', 'some new message');

    $scope.addMessage = function (title, message) {
        if (title != ''){
          messageService.addMessage(title, message);
        };
    };

    $scope.deleteMessage = function (id) {
        //
    };   
}]);
fxck

您的json无效。每个条目都需要用自己的{}包装。

参见http://jsfiddle.net/rbqyf78e/

var data= [
    {    id: 1, title: 1, message: 'some new message1' },
    {    id: 2, title: 2, message: 'some new message2' },
    {    id: 3, title: 3, message: 'some new message3' },
    {    id: 4, title: 4, message: 'some new message4' },
    {    id: 5, title: 5, message: 'some new message5' },
    {    id: 6, title: 6, message: 'some new message6' },
    {    id: 7, title: 7, message: 'some new message7' },
    {    id: 8, title: 8, message: 'some new message8' }
];

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

仅显示最后一个元素

Firebase 数据库中仅显示最后一个元素

Node.js - 仅显示 JSON 响应中的最后一个元素

仅显示数据中的第一个元素

JavaScript 饼图函数和回调仅显示数据库中的最后一个元素

仅显示链接列表的最后一个元素

Android:MySQL的ListView仅显示最后一个元素

嵌套v-for仅显示Vue中第一个元素的最后一个子元素

Listview在整个过程中仅显示最后一个元素

2D数组仅显示Text函数中的最后一个元素

为什么此代码仅显示数组中的最后一个元素?

ListView仅显示整个行中的最后一个元素

jQuery .json中的JSON数组,当使用.append时,仅显示数组的最后一个值

JSON输出仅显示最后一个结果

模态显示整个json数据,而不是仅显示一个元素

For循环仅迭代Python中的最后一个元素

仅显示列表中的最后一个数组

在Android中仅显示最后一个ArrayList

如何显示复杂数据或更改ngFor中第一个和最后一个元素的模板?

在 QListView 中显示最后一个元素

在android ListView中,最后一个元素重复显示

将 JSON 数据从服务器保存到回收站视图仅显示最后一个 JSON 项目

NgFor显示最后一个元素

HTML中仅显示第一个元素

从json []中删除了最后一个元素?

遍历数组以对样式元素使用数据属性,但仅获取数组中的最后一个值

将数据集写入 Json 文件时,仅打印数据集 get 中的最后一个值

循环仅显示最后一个数组元素ActionScript3

jqPagination仅显示一个元素