如何从使用`createElement`创建的子视图访问父属性

时间:2012-11-22 01:44:02

标签: ember.js

我创建了一个支持solution here之后拖放的视图。现在我尝试根据自己的内容为每个视图设置拖动图像。以下是我遇到的部分代码的coffeescript:

App.BlockView = Ember.View.extend(App.Draggable, {
  classNames: ['block'],
  mouseDown: ->
    console.log "clicked on #{@get 'elementId'} block and thumbnail is #{@get 'block.thumbnail'}" #this works
  ,
  dragIconElement: Em.View.create({
    attributeBindings: ['src'],
    tagName: 'img',
    #src: @get 'block.thumbnail', #this does not work
    src: @get 'parentView.block.thumbnail', #this does not work either
  }).createElement().get('element')
  ...
})

正如您所看到的,我尝试了this solution,但它没有用。以下是我在上述两种情况下得到的错误:

TypeError: this.get is not a function
src: this.get('parentView.block.thumbnail')

我正在使用Ember 1.0pre1我不知道如何在这里访问父级别范围,并且可能存在我在这里缺少的基本内容。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这不是因为createElementsrc: @get 'parentView.block.thumbnail',这里this没有指向当前视图(我猜它指的是窗口对象,取决于你的代码),更好地用它作为计算属性

src: (->
  @get 'parentView.block.thumbnail'
).property()