首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >"TypeError:链是未定义的“当添加一个把手时,如果帮助并导航到应用程序的主页

"TypeError:链是未定义的“当添加一个把手时,如果帮助并导航到应用程序的主页
EN

Stack Overflow用户
提问于 2014-02-27 20:10:33
回答 3查看 254关注 0票数 2

我在我的Ember应用程序中有一个车把模板。

代码语言:javascript
运行
复制
{{#if image}}
    <img src="{{unbound image}}" />
{{/if}}

if语句工作正常,但当导航回主页时,它似乎正在中断。当我回到索引路径时,会得到这个错误。

代码语言:javascript
运行
复制
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。

真奇怪,如果条件可以打破这一点,但我花了几个小时试图缩小它,这是我的结论是问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-06 15:02:11

当{{if}子句中的属性名以大写字母开头时,我看到了同样的问题。

我认为下面的问题讨论可能是说明https://github.com/emberjs/ember.js/issues/1493的根本原因

sly7-7两年前被评论过 我认为这是因为在工具栏中使用大写名称可以搜索全局。在编写Foo.Bar时,我认为工具栏试图解析名称空间Foo,然后是类或属性栏。

票数 3
EN

Stack Overflow用户

发布于 2014-11-15 03:56:56

我也看到了同样的错误。根据这个线程的提示,我得出结论,它确实来自于具有大写键名的重调JSON模型。在我的例子中,我返回的JSON如下所示:

代码语言:javascript
运行
复制
{
    ClassName: "3rd Grade - Thompson",
    SubjectID: "20509",
    SubjectName: "English"
}

在我的Ember路由中,我定义了模型,在下面的代码中运行返回的JSON,以使所有的键值小写:

代码语言:javascript
运行
复制
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;
      });
    }
});

然后,在我的车把代码中,我把我所有的键名都换成了小写,如下所示:

代码语言:javascript
运行
复制
<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}}

它就像一种魅力。希望这能帮上忙。我知道我花了几个小时想办法解决这个问题,希望我能让别人免于麻烦。

票数 1
EN

Stack Overflow用户

发布于 2014-02-27 20:27:26

您很可能在{{if}}子句的命名空间中,因此它的行为有所不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22079277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档