我正在使用此视频示例(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í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数组,但它没有显示它。
感谢您的帮助。
最好的问候。
拉法
答案 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()}));
}
});
}
});
问题是我没有收集任何参考资料。
希望这对你也有所帮助。
祝你好运
拉法