我得到一个"未捕获的TypeError:无法读取属性'输入'未定义"。这是我在控制器中使用transitionToRoute的时候。 控制器中的transitionToRoute函数,
transitionToRoute: function() {
// target may be either another controller or a router
var target = get(this, 'target');
var method = target.transitionToRoute || target.transitionTo;
return method.apply(target, arguments);
},
这里为目标变量分配视图而不是控制器或路由器。我不知道这是一个问题,还是我以错误的方式使用transitionToRoute。需要帮助。
编辑: 上面的功能可以在这里找到, https://github.com/emberjs/ember.js/tree/v2.0.1/packages/ember-routing/lib/ext/controller.js#L41
编辑: 在上面的函数中,它调用get函数和控制器对象作为"这个",寻找" target"关键在于它。 当我记录" this.target"在transitionToRoute中它打印一个路由类,但如果我在get函数中记录相同的变量,我会得到一个视图类。
我不知道这是怎么回事。
答案 0 :(得分:0)
尝试
transitionToRoute: function() {
// target may be either another controller or a router
var target = get(this, 'target');
var method = target.transitionToRoute || **this.target.transitionTo;**
return method.apply(target, arguments);
},
答案 1 :(得分:0)
这里,控制器的transitionToRoute功能正在获取其路由和呼叫路由的transitionTo功能。 因此,作为一种解决方法,我们可以直接在控制器中获取路由并调用transitionTo()
//inside controller
this.get('target').transitionTo(arguments);
但仍然很想知道为什么会这样。