我正在尝试访问sails框架中的骨干视图。我从服务器获取数据,我试图将它们推送到DOM。实际上,我为标签创建了一个模型控制器,我将数据从mongo存储到标签模型,然后返回标签视图的url。我想将这些数据显示给我的DOM元素。我试图找到如何在帆中这样做,因为我收到的是未定义的错误。我的DOM元素代码如下:
51| <div id="profiles" class = 'hashTagsCloud'>
52| <script id="profileTemplate" type="text/template">
>> 53| <%= tagsCloud.tags.join("     ")%>
54| </script>
55| </div>
tagsCloud is not defined
其中tagsCloud是我从服务器获取的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());
//push data to obj for map script
obj = profile.toJSON();
// Add data to DOM element
$(this.el).html(profileTemplate);
}, this);
return this;
}
});
上面的骨干逻辑就像阿帕奇的魅力一样。但是在帆中,我没有定义错误。如何以正确的方式为我的索引文件中的tagsCloud项定义? 我的json文件如下:
[
{
tstamp: 1366626103000,
tagsCloud: {
sort: "asc",
tags: [
"Lorem ipsum dolor sit amet consectetur"
]
},
id: "529da369380eb213e804a673"
}
]
此外,我在homeController文件中添加了一些动作,以便向jjs文件发送json数据:
index: function (req,res)
{
console.log(req.tags); // tags is the name of the model-controller
res.view({
tags: req.tags
});
},
'home': function (req,res)
{
res.view();
}
我是否需要在骨干视图代码中更改以正确更新索引视图???
答案 0 :(得分:0)
最后,我找到了一种从骨干网向DOM发送获取数据的方法。我在骨干代码中更改了模板代码,以便直接将数据发送到DOM元素。这是我的代码:
_.templateSettings = {
interpolate : /\{\{(.+?)\}\}/g
};
var TagsView = Backbone.View.extend({
el: "#profiles",
template: _.template("<div><p>{{ tg.tagsCloud.tags }}</p></div>"),
render: function(eventName) {
_.each(this.model.models, function(tags){
var tagsTemplate = this.template(tags.toJSON());
//push data to obj for map script
tg = tags.toJSON();
// Add data to DOM element
$(this.el).html(tagsTemplate);
}, this);
return this;
}
});