ember或showdown:未捕获的TypeError:无法调用undefined的方法'replace'

时间:2013-04-21 06:08:17

标签: ember.js showdown

汤姆戴尔的讲座:恩伯的介绍
http://www.youtube.com/watch?feature=player_embedded&v=Ga99hMi7wfY

我使用了github.com/cmoel/tom_dale_ember_screencast github.com/cmoel/tom_dale_ember_screencast和
github.com/jielimanyili/tom-dale-screencast_building-an-app-with-ember-js_code

在Chrome Dev中: 未捕获的TypeError:无法调用未定义的方法'replace'(showdown.js:62)
如果我从模板中删除使用“markdown”..应用程序可以正常工作。

在FireBug中: a未定义(showdown.js:62)

不确定是否是导致此问题的Ember或Showdown。

由于

2 个答案:

答案 0 :(得分:1)

我也关注了Tom Dale的youtube视频,并且只有当我在#/ posts / 1(帖子/帖子后路线)刷新页面时才会出现此错误。

我设法通过跳过registerBoundHelper中的摊牌转换来解决这个问题,如下所示:

var showdown = new Showdown.converter();
Ember.Handlebars.registerBoundHelper('markdown', function(input) {

  // Add this part
  if (typeof input == 'undefined')  return;

  return new Ember.Handlebars.SafeString(showdown.makeHtml(input));
});

答案 1 :(得分:0)

我想你会......生气...这只是一个错字我认为......在你引用的模板中{{extended}},但在灯具中,属性是extentded 。显然,Showdown插件会抱怨,因为你试图将它与undefined一起使用。

http://jsfiddle.net/Sly7/7vfLD/7/