我在我的Ember应用程序中有一个车把模板。
{{#if image}}
<img src="{{unbound image}}" />
{{/if}}if语句工作正常,但当导航回主页时,它似乎正在中断。当我回到索引路径时,会得到这个错误。
TypeError: chains is undefined
ember.js (line 4177)
var chains = this._chains, node = chains[key];当我删除我的车把模板中的if条件时。我不再得到错误,我可以回到主页,没有任何问题。
我正在使用EmberJSBeta1.5.0-Beta.2、Handblebar 1.3.0和jQuery 1.11.0。
真奇怪,如果条件可以打破这一点,但我花了几个小时试图缩小它,这是我的结论是问题。
发布于 2014-05-06 15:02:11
当{{if}子句中的属性名以大写字母开头时,我看到了同样的问题。
我认为下面的问题讨论可能是说明https://github.com/emberjs/ember.js/issues/1493的根本原因
sly7-7两年前被评论过 我认为这是因为在工具栏中使用大写名称可以搜索全局。在编写Foo.Bar时,我认为工具栏试图解析名称空间Foo,然后是类或属性栏。
发布于 2014-11-15 03:56:56
我也看到了同样的错误。根据这个线程的提示,我得出结论,它确实来自于具有大写键名的重调JSON模型。在我的例子中,我返回的JSON如下所示:
{
ClassName: "3rd Grade - Thompson",
SubjectID: "20509",
SubjectName: "English"
}在我的Ember路由中,我定义了模型,在下面的代码中运行返回的JSON,以使所有的键值小写:
App.GradesRoute = Ember.Route.extend({
model: function(){
var url = "https://URL-To-JSON-API";
var grades = [];
return Ember.$.getJSON(url).then(function(data){
$.each(data, function(index, obj){
var grade = {};
$.each(obj, function(key, value){
grade[key.toLowerCase()] = value;
});
grades.push(grade);
});
return grades;
});
}
});然后,在我的车把代码中,我把我所有的键名都换成了小写,如下所示:
<script type="text/x-handlebars" id="grades">
{{#each grade in model}}
<p>
{{grade.classname}}
{{#if grade.subjectid}}
{{grade.subjectname}}
{{/if}}
{{grade.number}} / {{grade.letter}}
</p>
{{else}}
<p>No grades posted</p>
{{/each}}
它就像一种魅力。希望这能帮上忙。我知道我花了几个小时想办法解决这个问题,希望我能让别人免于麻烦。
发布于 2014-02-27 20:27:26
您很可能在{{if}}子句的命名空间中,因此它的行为有所不同。
https://stackoverflow.com/questions/22079277
复制相似问题