未捕获的ReferenceError:未定义文本
Uncaught ReferenceError: text is not defined
http://jsfiddle.net/3pSg7/
我想知道是否有人能帮我找出这种情况下的错误。我在第6行得到"未捕获引用错误:文本未定义"。使用模板和local.txt文件进行测试,直到API可用。
Backbone.js模型脚本:
var Letter = Backbone.Model.extend( {
urlRoot: 'data/json/news',
initialize: function() {
},
defaults: {
_type: "",
text: "",
is_read: 0
}
});
var News = Backbone.Collection.extend({
model: Letter,
url: 'data/json/list_news.txt',
initialize: function() {
},
fetchMyNews: function() {
this.fetch({async:false});
}
});
var news = new News();
查看脚本:
var NewsView = Backbone.View.extend({
initialize: function() {
this.isShown = false;
this.render();
this.listenTo(news, "all", this.doListen);
},
doListen: function(eventName){
if(eventName == "change"){
this.render();
}
},
isShown: false,
events: {
},
render: function() {
this.$el.attr("z-index", "1000");
news.fetchMyNews();
var sHtml = JST["news/row"](news.attributes);
$("#news_tbody").html(sHtml);
}
});
代码中的一些内容。
您正在为集合定义一个全局变量"news"。不建议这样做,您可以在实例化视图时将一个新集合传递给视图:
var NewsView = new NewsView({
collection: new News()
});
并将视图中的所有"新闻"引用更改为"this.collection"
而且,我通常不喜欢异步ajax调用。试着把它们改为回调,或者只听你视图中的事件。哦,还有,尽量不要在render()中获取数据。您的函数应该只执行它们的命名。:)
所以在你看来:
initialize: function() {
this.isShown = false;
this.listenTo(this.collection, "all", this.doListen);
this.collection.fetch();
},
doListen: function(eventName){
if(eventName == "change" || eventName == 'reset'){
this.render();
}
}
并且在您的渲染中:
var sHtml = JST["news/row"](new.attributes);
$("#news_tbody").html(sHtml);
您正在呼叫news.attributes,news是这里的收藏。。。"属性"不会给你任何东西。我不确定你的模板是什么样子的,但你可能在模板中调用了".text",这导致了你在这里的错误,因为news.attributes是未定义的。
相关文章:
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- Highcharts工具提示不显示corrosconding文本值,而是显示'未定义'
- 无法读取未定义的属性“替换” - 替换 JS 生成的 HTML 中的文本
- 在文本区域显示未定义的javascript数组
- 文本框的值打印为“未定义”
- Javascript生成的文本框值=未定义
- 未捕获的ReferenceError:未定义文本
- $event未在文本输入的 ng-change 中定义
- 幻灯片下方的未定义文本
- 无法循环访问比较文本值的数组,使用量角器未定义的结果
- NG-model 未定义多种方式无法从文本框获取文本
- 将“未定义”改为文本
- 未定义的响应来自侧边栏小工具中 XHR 的文本
- 文本变为未定义
- D3 - 未捕获的类型错误:无法调用未定义的方法“文本”
- Get-day文本函数返回了未定义的值
- 来自文本框和单选按钮的用户输入在警报中重复,显示未定义
- AngularJS文本框返回未定义的值
- AngularJS中文本区域的未定义值
- parseInt(code)Uncaught ReferenceError:未定义文本