1

我试图弄清楚看起来应该很容易。我有这个视图(使用火焰 - 我不知道这是否是它的一部分)。我要做的是显示一个基于 1 的编号链接列表,供用户单击并选择可用的图像。布局工作正常,所有 HTML 都是可以接受的,但是当我点击一个链接时,我得到

Uncaught TypeError: Object <(subclass of Ember.View):ember9452> has no method 'becomeKeyResponder' 

App.Router:ember3456> could not respond to event App.ControllerA.jumpToImage in state root.visualGlossary.defaultState. 

谷歌没有发现这些错误。

jumpToImage = Flame.View.extend({
    layout: {left: 0, top: 5, height: 26, width: 'auto'},
    classNames: 'image-links'.w(),

    handlebars: "\
        {{#each App.ControllerA.content.images}}\
            {{#view App.arrayIndexer contentBinding='this'}}\
               <a {{action 'App.controllerA.jumpToImage' }} {{bindAttr data-index='view._parentView.contentIndex'}}>{{view.test}}</a>\
               {{/view}}\
           {{/each}}\
        "
   }),

这作为控制器A(相关部分)

App.controllerA = Em.ObjectController.extend({
    imageIndex: 0,
    //assume content.images is an valid enumerable

    jumpToIImage: function(e){
       this.set('imageIndex', $(e.target).data('index'));
    }
)}

和控制器 B

Sylvius.arrayIndexer = Ember.View.extend({
   content: null,   
   test: function(){
      return this.getPath('_parentView.contentIndex') + 1
   }.property(),

  jumpToImage: function(e){
    Sylvius.vgDisplayController.set('imageIndex', $(e.target).data('index'));
  }
})
4

1 回答 1

0

这是一个相当老的问题,但为了完整性和将来检查这个问题的任何人:看起来你有一个错字!jumpToIImage在控制器 A 中有两个I,而不是一个。

于 2014-12-15T18:35:38.123 回答