我坚持使用下划线和骨干。我以某种方式无法在下划线模板中呈现JSON。浏览器不输出任何内容,但没有错误消息。继承人我的工作:
服务器返回以下json:
[{"id":"1","vorname":"Magnus","nachname":"R.","geb":"0","natio":""},{"id":"2","vorname":"Konstantin","nachname":"W.","geb":"0","natio":""}]
///////我的型号://////
define([
'underscore',
'backbone',
], function(_, Backbone){
var MitarbeiterModel = Backbone.Model.extend({});
return MitarbeiterModel;
});
/////我的收藏:///////
define([
'underscore',
'backbone',
'models/mitarbeiter',
], function(_, Backbone, MitarbeiterModel){
var MitarbeiterCollection = Backbone.Collection.extend({
model: MitarbeiterModel,
url: '/aquilamus/server/request.php',
});
return MitarbeiterCollection;
});
//////我的观点///////
define([
'jquery',
'underscore',
'backbone',
'collections/mitarbeiter',
'text!/aquilamus/templates/mitarbeiter/mitarbeiter.html'
], function($, _, Backbone, MitarbeiterCollection, MitarbeiterTemplate){
var MitarbeiterListView = Backbone.View.extend({
el: $("#container"),
initialize: function(){
this.collection = new MitarbeiterCollection;
var newtemplate = MitarbeiterTemplate;
_.templateSettings.variable = "rc";
this.template = _.template($(newtemplate).html());
},
render: function(){
var self = this;
// show some loading message
this.$el.html('Loading');
// fetch, when that is done, replace 'Loading' with content
this.collection.fetch().done(function(){
console.log(self.collection.toJSON());
var renderedContent = self.template(self.collection.toJSON());
self.$el.html(renderedContent);
});
return this;
}
});
// Our module now returns our view
return MitarbeiterListView;
});
下划线模板:
<script type='text/javascript' id='mitarbeiter-anzeigen'>
<% _.each( rc.mitarbeiter, function(mitarbeiter){ %>
<div>test</div>
<div><%= mitarbeiter.vorname %></div>
<% }); %>
</script>
console.log(self.collection.toJSON())记录以下内容:
答案 0 :(得分:2)
在您的模板中,您有:
<% _.each( rc.mitarbeiter, function(mitarbeiter){ %>
rc 来自哪里?
以下是您在控制器中应该看起来的代码:
self.template({ "mitarbeiters": self.collection.toJSON() });
然后在你的模板中:
<% _.each( mitarbeiters, function(mitarbeiter){ %>
答案 1 :(得分:0)
答案: ///更新下划线模板:////
<script type='text/javascript' id='mitarbeiter-anzeigen'>
<% _.each(rc.mitarbeiters, function(mitarbeiters){ %>
<div><%= mitarbeiters.vorname %></div>
<% }); %>
////更新后的视图:///////
define([
'jquery',
'underscore',
'backbone',
'collections/mitarbeiter',
'text!/aquilamus/templates/mitarbeiter/mitarbeiter.html'
], function($, _, Backbone, MitarbeiterCollection, MitarbeiterTemplate){
var MitarbeiterListView = Backbone.View.extend({
el: $("#container"),
initialize: function(){
this.collection = new MitarbeiterCollection;
var newtemplate = MitarbeiterTemplate;
_.templateSettings.variable = "rc";
this.template = _.template($(newtemplate).html());
},
render: function(){
var self = this;
// show some loading message
this.$el.html('Loading');
// fetch, when that is done, replace 'Loading' with content
this.collection.fetch().done(function(){
console.log(self.collection.toJSON());
var renderedContent = self.template({ "mitarbeiters": self.collection.toJSON() });
self.$el.html(renderedContent);
});
return this;
}
});
// Our module now returns our view
return MitarbeiterListView;
});