这个问题与我之前问过的这个问题有关。我有一个具有关联的CatsController的Cat模型。我像这样添加了EmberCrossfilter Mixin:
App.CatsController = Ember.ArrayController.extend(EmberCrossfilter, {
// stuff here
});
现在,我想从我的索引控制器调用此控制器上的操作,可以这样做:
App.IndexController = Em.ObjectController.extend({
needs: ['cats', 'dogs'],
actions: {
indexAction: function() {
this.get('controllers.cats').send('catAction')
this.get('controllers.dogs').send('dogAction')
}
}
})
该动作被调用,但是如果我查看该this
对象,则会得到一些没有mixin属性且数组长度为0的东西:
__ember1389647609449: undefined
__ember1389647609449_meta: Meta
_childContainers: Object
_subControllers: Array[0]
_super: undefined
model: (...)
sortAscending: (...)
sortProperties: (...)
get sortProperties: function () {
set sortProperties: function (value) {
__proto__: Object
如果catAction
直接从cats模板中调用该方法,然后查看该this
对象,则会看到所有mixin属性,并且数组长度正确。
@each: (...)
get @each: function () {
set @each: function (value) {
__each: Class
__ember1389647609449: "ember425"
__ember1389647609449_meta: Meta
_childContainers: Object
_crossfilter: Object
_dimensionAge: Object
_dimensionColour: Object
_dimensionCountry: Object
_dimensionCuteness: Object
_dimensionDefault: Object
_dimensionName: Object
_dimensionNameRegexp: Object
_subControllers: Array[4]
_super: undefined
content: (...)
get content: function () {
set content: function (value) {
count: (...)
get count: function () {
set count: function (value) {
model: (...)
sortAscending: (...)
sortProperties: (...)
get sortProperties: function () {
set sortProperties: function (value) {
target: Class
toString: function () { return ret; }
__proto__: Object
尝试从索引控制器调用操作时,这导致了我的问题,因为传递的CatsController没有任何mixin属性或方法。
有人对我如何解决这个问题有任何想法吗?
mixin的属性可能不会正确显示在对象本身上,但是如果调用get,则将获取属性和getter / setter方法
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句