【问题标题】:ember or showdown : Uncaught TypeError: Cannot call method 'replace' of undefined余烬或摊牌:未捕获的类型错误:无法调用未定义的方法“替换”
【发布时间】:2013-05-31 19:25:43
【问题描述】:

Tom Dayle 的讲座:Ember 简介
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 开发中: 未捕获的类型错误: 无法调用未定义的“替换”方法 (showdown.js:62)
如果我从模板中删除“markdown”的使用.. 该应用程序有效。

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

不确定是 Ember 还是 Showdown 造成的。

谢谢

【问题讨论】:

  • 能否指点您的应用程序?如果你可以发布一个 jsfiddle/jsbin 那就更好了:)。您可以使用jsfiddle.net/Sly7/7vfLD 作为起点。 (必须为 showdown.js 添加外部资源)
  • 更新了 fiddel link 查看 HTML 部分的第 56 行和第 59 行,我已经更改了 "{{markdown intro}}" 删除了降价。整页link

标签: ember.js showdown


【解决方案1】:

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

我设法通过跳过 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));
});

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢 sly7_7。 Ember 新手只是尝试我能找到的示例。 jsfiddle也是第一次使用。
    • 没问题,很好:)。我希望你会继续喜欢 Ember.js
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    • 2011-11-12
    • 2013-09-14
    相关资源
    最近更新 更多