if语句导致TypeError:无法调用未定义的unchain

时间:2013-11-30 11:03:22

标签: javascript ember.js

我在我的手柄模板中使用if语句。 if语句有效,但是当你尝试更改路由时,它会导致Uncaught TypeError:无法调用未定义的方法'unchain'。

我在以下jsbin中重新创建了错误

演示:http://emberjs.jsbin.com/UnUVorUn/9

代码:http://emberjs.jsbin.com/UnUVorUn/9/edit

1 个答案:

答案 0 :(得分:10)

您的问题发生是因为您的IsLink以大写字母开头,在手柄模板中使用时有bug,已在1.3.0中修复。但是如果你更新你的ember版本,你会遇到一个新问题,因为ember认为一个以大写字母为全局路径的属性,因此它将sectionController.IsLink而不是window.IsLink = 'teste',而是查找isLink

我建议您只需更新到App.SectionController = Ember.Controller.extend({ isLink :Ember.computed.equal('model.type', 'link') }); 即可避免这些问题:

<ul>
  {{#link-to 'index'}} index{{/link-to}}
  {{#link-to 'test'}} test{{/link-to}}
  {{#each model itemController="section"}}
    {{#if isLink}}
      <li>{{model.color}}</li>
    {{/if}}
  {{/each}}
</ul>

模板

{{1}}

http://emberjs.jsbin.com/UnUVorUn/12/edit