流星,按布尔显示/排序值

时间:2015-11-18 15:52:28

标签: javascript mongodb meteor collections semantic-ui

我正在使用Meteor模板中的一个表,其中是一个布尔字段“emergency” 我想在表格中显示有“紧急”标志FIRST的单元格,然后是其他...

我该怎么办呢?

这里是查找,我尝试排序(),查找和排序内部但它不起作用..:/

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

提前致谢:)

我收到错误:模板帮助器中的异常:TypeError:无法读取属性'hasOwnProperty'为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
    ....

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

使用下划线的 sortBy() 方法对检查“紧急情况”的对象进行排序。字段通过 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>
&#13;
&#13;
&#13;