流星,display/sort 布尔值

Meteor, display/sort value by boolean

我正在 Meteor 模板中处理 table,其中是一个布尔字段 "emergency" 我想在 table 中首先显示有 "emergency" 标志的单元格,然后是其他单元格 ...

请问我该怎么做?

这是查找,我尝试了 sort(),在里面查找和排序但是它不起作用.. :/

Template.actionsList.helpers({
    actions: function() {
        return Actions.find();
    }
});

提前致谢:)


我收到错误:模板助手中出现异常:TypeError:无法读取 属性 'hasOwnProperty' of null

我的代码是:

Session.set('emergency', false);
Template.actionForm.onRendered(function () {
    var $elem = this.$('.emergency');
    $elem.checkbox('set ' + (Session.get('emergency') ? 'checked' : 'unchecked'));
    $elem.checkbox({
            onChange: function () {
              Session.set('emergency', !Session.get('emergency'));
            }
    });
});

Template.actionForm.events({
    'submit .new-action': function(event) {
        event.preventDefault();

        var emergency = Session.get('emergency');
    ...
       Actions.insert({
        emergency: emergency
    ....

感谢帮助

使用下划线的sortBy() method to sort on objects checking if the 'emergency' field exists via the hasOwnProperty()原生方法:

Template.actionsList.helpers({
    actions: function() {
        var actions = Actions.find().fetch();
        return _.sortBy(actions, function (a) { return !a.hasOwnProperty('emergency'); });
    }
});

查看下面的演示。

var actions = [
 {
  "_id" : "ukn9MLo3hRYEpCCty",    
  "field" : "foo"
 },
 {
  "_id" : "ukn9MLo3hRYEpCCty",    
  "field" : "bar",
  "emergency": true
 },
 {
  "_id" : "WMHWxeymY4ATWLXjz",    
  "field" : "abc",
  "emergency": false
 },
 {
  "_id" : "5SXRXraariyhRQACe",    
  "field" : "xyz"   
 }
];

var result = _.sortBy(actions, function (a) { return !a.hasOwnProperty('emergency'); });

pre.innerHTML = JSON.stringify(result, undefined, 4);
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script>
<pre id="pre"></pre>