javascript - 使用 Mixins 访问 Ember Controller

标签 javascript ember.js ember-data

此问题与 this question I asked earlier 相关。我有一个猫模型,它有一个关联的 CatsController。我已经添加了 EmberCrossfilter Mixin,如下所示:

App.CatsController = Ember.ArrayController.extend(EmberCrossfilter, {
  // stuff here
});

我现在想从我的索引 Controller 调用此 Controller 上的操作,并且可以像这样执行此操作:

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

如果我直接从 cats 模板调用 catAction 方法,并查看 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

当我尝试从索引 Controller 调用操作时,这会给我带来问题,因为传递的 CatsController 没有任何 mixin 属性或方法。

有人知道我该如何解决这个问题吗?

最佳答案

mixin 的属性可能不会出现在对象本身上,但是如果你调用 get 方法,属性和 getter/setter 将会被获取

http://emberjs.jsbin.com/aSIZIbu/4/edit

关于javascript - 使用 Mixins 访问 Ember Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21101575/

相关文章:

ember.js - 如何将 Ember 数据与嵌套资源结合使用

javascript - Ember 得不到某些属性

php - 如何区分页面刷新和关闭页面

javascript - Electron 更新不工作 - 最大允许大小为 50 MB

javascript - React - 我放置在 css 网格上的简单单选按钮组件存在问题

ember.js - 如何创建一个特定于 ember 版本的项目?

javascript - Extjs : Validation for Integers

ember.js - 有趣的 Ember,CoffeeScript 优先级

javascript - Ember 组件忽略高度/溢出

ember.js - 使用 findQuery 获取 createRecord 后没有模板更新