MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Ràng buộc phản hồi máy chủ động (json lồng nhau)

Cuối cùng, điều duy nhất thay đổi là cách bạn muốn các hướng dẫn được sử dụng và mở rộng. Đây là một chút khác biệt so với trước đây nhưng một điều quan trọng là appendChild không nên bên trong vòng lặp thuộc tính hướng dẫn cho nút nhưng ngay sau bên ngoài nó; cũng phải chú ý đến một số thuộc tính đặc biệt, có thể là class không phải là người duy nhất, ai biết được :) ... cố gắng thay thế hoàn toàn for block với những điều sau:

var tag = null, a;
if ('tag' in _instr) {
    tag = document.createElement(_instr.tag);

    if ('attributes' in _instr)
        for(a in _instr.attributes) {
            a.match(/^class$/) && (a = 'className');
            tag.setAttribute(a,_instr.attributes[a]);
        }

    if ('events' in _instr)
        for(a in _instr.events)
            tag.addEventListener(a,_instr.events[a], false);

    //
    // if ('content' in _instr && _instr.content!==null)
    //  tag.innerHTML = _instr.content;
    //
    // but take care ... what if is a input[text] 

    tag[_instr.tag=='input' ? 'value' : 'innerHTML'] = ('content' in _instr && _instr.content !== null) ? _instr.content : o[k];

    if ('children' in _instr)
        for(a in _instr.children)
            _(_instr.children[a], a, tag);

    !!_n && !!tag && _n.appendChild(tag);
}

==================

ĐÃ CẬP NHẬT

Bây giờ sản lượng bây giờ chính xác là một trong những dự kiến. Tôi thậm chí đã sửa một lỗi ngu ngốc khi xử lý lớp class thuộc tính. Hãy thử nó, thậm chí có thể trên các đầu vào khác, tôi đã cố gắng đặt văn bản thay vì null trên một số dữ liệu và nó có vẻ ổn. Hẹn gặp lại!

function assemble (data, instr) {
    var n = document.createDocumentFragment(), i;
    function create(d) {
        return (function _(_instr, _d, _key, _n) {
            var tag = null, i;
            if ('tag' in _instr) {
                tag = document.createElement(_instr.tag);

                tag.innerHTML = 'content' in _instr && !!_instr.content ? _instr.content : typeof _d == 'string' ? _d : '';

                if ('attributes' in _instr) 
                    for (i in _instr.attributes)
                        tag.setAttribute(i, _instr.attributes[i]);

                if ('events' in _instr)
                    for(i in _instr.events)
                        tag.addEventListener(i,_instr.events[i], false);

                //recur finally
                if ('children' in _instr) {
                    for (i in _instr.children){
                        _(_instr.children[i], _d[i], i, tag);
                    }
                }
                !!_n && _n.appendChild(tag);
            }
            return tag;
        })(instr, d, null);

    }
    return (function (){
        for (i in data) {
            n.appendChild(create(data[i]));
        }
        return n;
    })();
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cập nhật nhiều phần tử có giá trị khác nhau trong Mongoose

  2. Kết nối laravel jenssegers với cụm tập bản đồ mongodb

  3. SCUMM:Cơ sở hạ tầng giám sát cơ sở dữ liệu dựa trên tác nhân trong ClusterControl

  4. Bỏ bộ sưu tập cơ sở dữ liệu Mongo trong Meteor

  5. Sắp xếp cố định động trong Mongo cho một giá trị hoặc danh sách đơn giản