App.Post = Em.Object.extend({
    content: null
});

App.Post.reopenClass({
    getLink: function() {
      console.log("test");
    }.property('content')
});

----template clip----
            {{#each this}}
                {{getLink}}
                {{content}}
            {{/each}}


在我的模板中没有调用getLink。为什么是这样?

最佳答案

在ember中,reopenClass用于创建类方法或向类本身添加属性。因此,您已经定义了App.Post.getLink,但是该模板似乎正在App.Post实例上寻找getLink属性。可能您要使用的是reopen,它将为类的所有实例添加方法和属性。

App.Post.reopen({
  getLink: function() {
    console.log("test");
  }.property('content')
});


有关所有工作原理的更多详细信息,请参见reopening classes and instances指南。

07-26 01:31