Мои функции API есть.

function student_GET() {
    $response = $this->viewList();
    $this->response($response);
}

function viewList() {
     $this->load->model('model_student');
     $response = $this->model_student->getStudents();
     return $response;
}

И моя модель,

function getStudents() {
    $sql= "SELECT * FROM students;
    $query = $this->db->query($sql);
    if ($query->num_rows() > 0) {
        return $query->result();
    } else {
    return NULL;
    }
}

API работает нормально, и результаты json-данных:

[
  {
    "id": "5",
    "subject": "English",
    "score": "93",
    "name": "john"
  },
  {
    "id": "9",
    "subject": "Maths",
    "score": "75",
    "name": "jack"
   }
]

Мне нужно отобразить эти сведения о результатах в представлении с помощью backbone.js Пожалуйста, помогите ..

1
user3002114 4 Янв 2016 в 09:10

2 ответа

Лучший ответ

Это пример, который будет работать на магистрали и любых JS-библиотеках: "результаты" - это ваши данные, поступающие из запроса.

success: function(results) {
   for (var i = 0; i < results.length; i++) {
            var tempData=[];
                        tempData[0] = results[i].get('subject');
                        tempData[1] = results[i].get('score');
                        tempData[2] = results[i].get('name');
                        tempData[3] = results[i].get('id');
                       // or tempData[4] = results[i].id;
  }
}

Я сделал еще один пример, модель магистрали, которая получает данные из файла json: http://tennis.parseapp.com/

На всякий случай удалю этот хост, файлы ниже. index.html:

<!DOCTYPE html>
<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
        <script src="http://documentcloud.github.io/underscore/underscore-min.js"></script>
        <script src="http://documentcloud.github.io/backbone/backbone-min.js"></script>
        <script>

            $(function() {
                var Profile = Backbone.Model.extend();

                var ProfileList = Backbone.Collection.extend({
                    model: Profile,
                    url: 'profiles.json'
                });   

                var ProfileView = Backbone.View.extend({
                    el: "#profiles",
                    template: _.template($('#profileTemplate').html()),
                    render: function(eventName) {
                        _.each(this.model.models, function(profile){
                            var profileTemplate = this.template(profile.toJSON());
                            $(this.el).append(profileTemplate);
                        }, this);

                        return this;
                    }
                });

                var profiles = new ProfileList();    
                var profilesView = new ProfileView({model: profiles});
                profiles.fetch({
                    success: function() {
                        profilesView.render();
                    }
                });

            });
        </script>
        <title>Fortified Studio</title>
    </head>
    <body>
        <div id="profiles"></div>


        <script id="profileTemplate" type="text/template">
            <div class="profile" style="margin-bottom: 21px;">
                <div class="info">
                    <div class="name">
                        <%= name %>
                    </div>
                    <div class="title">
                        <%= title %>
                    </div>
                    <div class="background">
                        <%= background %>
                    </div>
                </div>
            </div>

        </script>
    </body>
</html>

Profile.json:

[
    {
        "name": "Tim Cook",
        "title": "CEO",
        "background": "Tim Cook is the CEO of Apple and serves on its Board of Directors."  
    },
    {
        "name": "Angela Ahrendts",
        "title": "Senior Vice President of retail and online stores",
        "background": "Angela Ahrendts is Apple's senior vice president of retail and online stores, reporting to CEO Tim Cook."
    },
    {
        "name": "Eddy Cue",
        "title": "Senior Vice President of Internet Software and Services",
        "background": "Eddy Cue is Apple's senior vice president of Internet Software and Services, reporting to CEO Tim Cook."
    },
    {
        "name": "Craig Federighi",
        "title": "Senior Vice President of Software Engineering",
        "background": "Craig Federighi is Apple's senior vice president of Software Engineering, reporting to CEO Tim Cook."
    },
    {
        "name": "Jonathan Ive",
        "title": "Senior Vice President of Design",
        "background": "London-born designer Jonathan Ive is Apple's senior vice president of Design, reporting to CEO Tim Cook. "
    }
]
0
Amir 6 Янв 2016 в 02:09

Необходимо использовать коллекцию и модель для отображения значений json в представлении

0
user3002114user3002114 6 Янв 2016 в 07:51