使用RESTful Slim Framework制作Backbone应用程序的最佳方法

时间:2014-09-05 11:11:45

标签: rest templates backbone.js underscore.js slim

我正在使用此视频示例(https://www.youtube.com/watch?v=FZSjvWtUxYk)来制作错误报告应用。问题出现在View中,当它传递来自REST-AJAX调用的对象时,_. template表示没有定义错误。

这是我的代码:

var Error = Backbone.Model.extend({
    defaults: {
        iderror: '',
        title: '',
        url: ''
    },
    idAttribute: 'iderror'
});

var Errores = Backbone.Collection.extend({
    model: Error,
    url: '/errores'


});

var ErrorList = Backbone.View.extend({
    el: '.page',
    render: function (eventName) {
        var that = this;
        var errores = new Errores();
        errores.fetch({
            success: function (errores) {
                var template = _.template($('#error-list-template').html(),{errores: errores.models});
                that.$el.html(template);

            }
        });
    }
}); 

我的模板代码:

<script type="text/template" id="error-list-template">
    <a href="#/new" class="btn btn-primary">Registrar Error</a>
    <hr/>
    <table class="table striped">
        <thead>
            <tr>
                <th>Id Error</th>
                <th>T&iacute;tulo</th>
                <th>URL</th>
                <th></th>
            </tr>
        </thead>
        <tbody>               
            <%  
                _.each(errores, function(error) { %>
                <tr>
                    <td><%= error.get('iderror') %></td>
                    <td><%= error.get('title') %></td>
                    <td><%= error.get('url') %></td>
                    <td><a href="#/edit/<%= error.iderror %>" class="btn">Editar</a></td>
                </tr>
            <% }); %>
        </tbody>
    </table>
</script>

使用SLIM Framework创建的RESTful GET功能:

$app->get('/errores/', function () {
//echo "Hello, ";
$datos = array();
$db = NewADOConnection('mysqli');
$db->Connect("localhost", "root", "mypassword", "tt1r");
$sql = "SELECT * FROM tt1r.course";
$qry = $db->execute($sql);
/*while (!$qry->EOF) {
    //print_r($qry->fields);
    $datos = [$qry->iderror => ['title' => $qry->title, 'url' => $qry->url]];
    $qry->MoveNext();
}*/
if($qry) {
    foreach($qry as $re){
        //return $re['ADM_ID'];
        $datos[] = array("iderror" => $re['iderror'],"title" => $re['title'],"url" => $re['url']);
    }
    $db = null;
    //echo json_encode($datos);
    //echo '{"user": ' . json_encode($datos) . '}';
    echo json_encode($datos);
}

});

我不得不说我确实使用RESTful函数中的数据获取JSON数组,但它没有显示它。

感谢您的帮助。

最好的问候。

拉​​法

1 个答案:

答案 0 :(得分:0)

我在RyanP13的帖子中读到了答案。

所以固定的View代码是:

var ErrorList = Backbone.View.extend({
    el: '.page',
    render: function () {
        var that = this;
        var errores = new Errores();
        errores.fetch({
            success: function(errores, response, options){
                var template = _.template($('#error-list-template').html());
                that.$el.html(template({ errores: errores.toJSON()}));

            }
        });
    }
}); 

问题是我没有收集任何参考资料。

希望这对你也有所帮助。

祝你好运

拉​​法