Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用不同型号进行排序';余烬中的属性_Javascript_Sorting_Ember.js - Fatal编程技术网

Javascript 使用不同型号进行排序';余烬中的属性

Javascript 使用不同型号进行排序';余烬中的属性,javascript,sorting,ember.js,Javascript,Sorting,Ember.js,我知道,您可以通过执行以下操作按升序/降序对不同的属性进行排序: App.TestsController = Ember.ArrayController.extend( sortProperties: ['testDate:desc', 'name:asc'] sortedObjects: Ember.computed.sort('content', 'sortProperties') ) 然后引用{{#each}中的对象。但是,如果每个测试都有一个与之关联的用户,那么我们是否

我知道,您可以通过执行以下操作按升序/降序对不同的属性进行排序:

App.TestsController = Ember.ArrayController.extend(
    sortProperties: ['testDate:desc', 'name:asc']
    sortedObjects: Ember.computed.sort('content', 'sortProperties')
)
然后引用{{#each}中的对象。但是,如果每个测试都有一个与之关联的用户,那么我们是否也可以通过用户的属性进行排序?我注意到,当我只是按测试属性或用户属性排序时,一切正常,但当我这样做时:

App.TestsController = Ember.ArrayController.extend(
    sortProperties: ['testDate:desc', 'user.lastName:asc']
    sortedObjects: Ember.computed.sort('content', sortProperties')
)

我得到一个“索引超出范围”错误。我是否需要使用自己的排序来适应不同型号的排序?

尝试将对象属性绑定到控制器:

App.TestsController = Ember.ArrayController.extend(
    needs: ['user'],
    lastName: '',
    lastNameBinding: 'controllers.user.lastName',
    sortProperties: ['testDate:desc', 'lastName:asc']
    sortedObjects: Ember.computed.sort('content', sortProperties')
)

您还可以尝试计算属性。

因此,最终的问题是如何在测试和用户之间建立连接。起初,我将用户连接到setupController中的测试,这导致用户作为对控制器的承诺返回。当我将进程移动到模型挂钩时,我的加载屏幕不再显示。如果有人遇到同样的问题,我会找Balint Erdi。

谢谢你花时间帮我,Matthew!您的回答帮助我消除了错误,但事实证明,用户在我的控制器中显示为承诺。现在我想出了一个解决办法,在这里我为每个测试显式地设置了一个用户,但是你知道为什么会发生这种情况吗?