Ember无法读取属性'路径'的未定义
Ember Cannot read property 'path' of undefined
我一直遇到这个错误,我很困惑为什么。我无法将开发工具中的错误追溯到我的主JS文件中的任何内容。我的Ember相关代码如下:
var App = Ember.Application.create();
App.ApplicationRoute = Ember.Route.extend({
model: function() {
var url = 'http://www.json-generator.com/api/json/get/bMRERKrXfS';
return Ember.$.getJSON(url).then(function(data) {
model = {
list1: data
};
return model;
});
}
});
Ember.Handlebars.helper('autocomplete', Ember.View.extend({
templateName: 'controls/autocomplete',
filteredList: function() {
...
}
return list.filter(function(item) {
...
});
}.property('list.@each', 'filter')
}));
我已经从那里的结构中删除了应用程序特定的代码。任何时候我试图运行这个,我会得到以下错误:
Ember无法读取未定义的属性"path",该属性看起来来自我的Ember.min.js文件。任何追踪此事的帮助都会很棒。
Codepen演示链接
编辑当在本地而不是CodePen中运行此代码时,我最终会出现以下错误:
未捕获类型错误:无法读取看起来由Ember.View.extend 抛出的未定义的属性"extend"
和
未捕获类型错误:无法读取来自ember.min文件的未定义的属性"isHelperFactory"。
编辑2我已经尝试将助手更新为Ember组件:
App.AutoCompleteComponent = Ember.Component.extend({
filteredList: function() {
var list = this.get('list'),
filter = this.get('filter'),
filterArr = [],
filterArrLength;
if (filter && filter.indexOf(', ') !== -1) {
filterArr = filter.split(', ');
filterArrLength = filterArr.length;
filter = filterArr[filterArrLength - 1]
}
if (!filter || (filterArrLength > 0 && filterArr[filterArrLength - 1].length == 0)) {
$("#filter-results").hide();
INPUT.unbindKeys();
return;
} else {
if (!$("#filter-results").is(":visible")) {
INPUT.bindKeys();
$("#filter-results").show();
}
}
return list.filter(function(item) {
if (!filterArrLength) {
return item.title.toLowerCase().startsWith(filter);
} else {
return item.title.toLowerCase().startsWith(filterArr[filterArrLength - 1]);
}
});
}.property('list.@each', 'filter')
});
我已经将我的Handlebars模板更新为"components/auto-complete"
尽管如此,我还是收到了同样的错误。我的CodePen链接也已更新以供审查。
Ember.View
已弃用。请参阅有关编写助手的新文档。
然而,基于所描述的功能,并且由于您提供了一个模板,我怀疑您想要的是一个组件:
// app/components/auto-complete.js
import Ember from 'ember';
export default Ember.Component.extend({
filteredList: ...
});
该模板由Ember自动找到,在本例中为templates/components/auto-complete.hbs
。
编辑到您的编辑2:请注意,现在不赞成在App
上定义对象。
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- $window.ga在AngularJS事件中未定义
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 如何消除代码中的未定义和其他问题
- 未捕获的ReferenceError:$未定义
- this.router在AngularJS 2中未定义
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 节点fs.stat名称未定义
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- Jquery未定义函数正在停止其他操作
- WS:路径未定义
- 将路径传递给php将返回未定义的结果
- Ember无法读取属性'路径'的未定义
- 无法读取“路径”;未定义的Nodejs属性
- mongoose.js CastError:值“”转换为数字失败;[对象对象]”;在路径“;未定义”;