{"_id":"spajs","_rev":"41-a249d132d2556545fce860ba06dc0cd5","name":"spajs","description":"MVC框架","dist-tags":{"latest":"0.3.2"},"versions":{"0.1.0":{"name":"spajs","description":"MVC框架","version":"0.1.0","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"0.0.4","art-template":"^2.0.3-rc5"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["spa","mvc"],"_id":"spajs@0.1.0","dist":{"shasum":"074c1575ece566bbba095f439faa473ca6484719","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.1.0.tgz","integrity":"sha512-PGEUYAF67CmvmKzRU0JGC6jx1+A+fKCHLMkZJbERQ4M1E/OksUkzc+bXX+MroBCkB5C/+A8SE9ir6ntto5v7zw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEtdGqwGlU0zXZsuKMgeDQYyumtAFO6iTP1KqXiifbwtAiEA/gWFiU8q61PH6e2WQdNuXdC0i1yrnrlV1UX58KSK850="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}]},"0.1.2":{"name":"spajs","description":"MVC框架","version":"0.1.2","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"0.0.4","art-template":"^2.0.3-rc5"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.1.2","dist":{"shasum":"7da49e1eb34b0a7bee9849b8b17ff29c39812e32","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.1.2.tgz","integrity":"sha512-Tu4tMfoEfyDilCcAhaGC0RnH1ftGwSzEzZfaqqUcCtzxuLGhrzaX+aC25UkZPt808sl45rzgO/fafiTn3Dg8HQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDzUO80ZN7O1Er8lpdzQEXJ2aVUSTXyzVjIpeyZ7CNIzwIhAPl//pw6s5M5EwqgMM3sUPvqxY5N44KFU/yZkeb8dGon"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}]},"0.1.3":{"name":"spajs","description":"MVC框架","version":"0.1.3","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"0.0.4","art-template":"^2.0.3-rc5"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.1.3","dist":{"shasum":"8c1a9f13b201fbc3c1dfdfea9fd352a959bb16e8","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.1.3.tgz","integrity":"sha512-bxFYjIX5NpqSR+8PWMtb0Aoolef6NFGL1+N+UaaULtuUH+oKtatNeO6vu4ZDOUC3Z1WqyysQWAdUwUyXIkcLZw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE875cwgjEZi1u+IoGSaNpzefhQ09z6hVUqIDNcgZiKYAiEAqzivsmMwLY3KBGtUxiQDPSBkgmg5pUFkvOLLNQperYE="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}]},"0.1.4":{"name":"spajs","description":"MVC框架","version":"0.1.4","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"0.0.4","art-template":"^2.0.3-rc5"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.1.4","dist":{"shasum":"78295a6216fa22418d5a2cf22cd90ae640e44993","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.1.4.tgz","integrity":"sha512-VKRZQ1pFSdUbGzHN4Yv34olzRE7ZDkmucELlEtdwhSg5OxLag+L9z7p1iwyIGDxSUxheC83mpdHyc56zIEG4mw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEnxFcZytfIJI6++O0yLmGbNt4Zy8z6IcELqeE3+CFsBAiBL3gCRrUCdjf0N/YcYmBOQ+/87XoWaS/eLhrZARbgXjg=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}]},"0.1.6":{"name":"spajs","description":"MVC框架","version":"0.1.6","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"0.0.4","art-template":"^2.0.3-rc5"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.1.6","dist":{"shasum":"d9350f9787643912c982140700aa88eedd44352d","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.1.6.tgz","integrity":"sha512-QE0LlnpjTrUEclm3+QaVw1U0Wa06Q71JzGQRPKF3DzsuqdWGhoTCed/07S508ZaUB5cFBA0tUhtHrwx22yONog==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrkQXx7m9nxhhnlOOjiw+G3GrqOKH1Kg1B26FOVvJCOgIgAnR9lAPzDJsWaLtxzTtCapeM4jqQn075ElYlCxReqZ4="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}]},"0.1.7":{"name":"spajs","description":"MVC框架","version":"0.1.7","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"0.0.4","art-template":"^2.0.3-rc5"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.1.7","dist":{"shasum":"f7d6a5fbd5655c05b9b1cae4ba14e8c0e7112729","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.1.7.tgz","integrity":"sha512-RKSXClPBnbVvwW3jxXSOMfJ6RlXwXTMIdqXDqqNzizPqsevATOubvFMVS8o4GwqJ+GD6BcDkKmdOwrMoH/goxQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvBtiZqaoygE1tXnDuB8PsKFCgQdhDHTUE+ZP/c7nvmgIgZNAd7do0V6u6QZ35v8PqHQstkj3GnCwzBYCFCsy6YR0="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}]},"0.1.8":{"name":"spajs","description":"MVC框架","version":"0.1.8","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"0.0.4","art-template":"^2.0.3-rc5"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.1.8","dist":{"shasum":"8896a5030466e8d20242bafd2220acd9d07caec4","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.1.8.tgz","integrity":"sha512-rS4VSfb/OplVODJZk37vvYMIc/ns4Ohpj+uT/r3P/SXr5iaw568sTLs+jP0zVyosNFyd3UMsIoOzDigb0YjR+g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMaWxEOaSPYGFBz3uraNiotX1521A+0r+vCk0w3moy1AIgaAbR2gjl6cWkw6+WcGlH8xsCrPI9h+JVCQWAGcKYF8c="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}]},"0.1.9":{"name":"spajs","description":"MVC框架","version":"0.1.9","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"0.0.4","art-template":"^2.0.3-rc5"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.1.9","dist":{"shasum":"fb8501070b5d5d75a1a62688c49eafc397d99fb5","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.1.9.tgz","integrity":"sha512-rEd0INYA4/IAAtCMR0fvblLOSZ+3RxyJHcbwOLu48RENgAriU1L3qGxpGOQVj3k64O+Bg2y/eC3iTdAA6RENjA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDNkE4NuZA5yGzXO6qsyosxybFfoEC20oPK8/uIGDoWwAiEAmMlIEw+x1XYBAtJdDyewYv5FAHMnj6IBScgYjqh5sHw="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}]},"0.2.0":{"name":"spajs","description":"MVC框架","version":"0.2.0","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"0.0.4","art-template":"^2.0.3-rc5"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.2.0","_shasum":"30fa8d189010217172eb8508de4fa8f1283c3ab4","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}],"dist":{"shasum":"30fa8d189010217172eb8508de4fa8f1283c3ab4","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.2.0.tgz","integrity":"sha512-+iY9AGWZ0ZvkL/iNBAhzcJPjP/MPtIMnsoE0HskTMAVhdv7cQxF+rAzMFvSu713xDcRpRjUfFpYvBlXHGtlVqA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBYz4urH2GvY3kmH+/tx+pDuaWo1/TwRhr7gKY3sGRMIAiEAl3Wcxaq3vV4Dgrku4GV+umSu3YRVOTLCJRz/73LG3ZA="}]}},"0.2.1":{"name":"spajs","description":"MVC框架","version":"0.2.1","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"0.0.4","art-template":"^2.0.3-rc5"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.2.1","_shasum":"2c4360b91cd843acfa7575911e7b1334b7c85b4e","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}],"dist":{"shasum":"2c4360b91cd843acfa7575911e7b1334b7c85b4e","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.2.1.tgz","integrity":"sha512-kgZiOTRSGHDZ0FFOOxXQDKP8zqV+wRWaPFA31NcVn6UJOvv6YlxXQHzT7tMHN85UtPLtkPvgP+w8XwObOSVr5g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBb6RnndN2eed87yDTevZFf32RLhJaz5blLfjHSb+uONAiEA1o0oWHKhh/kfpgh1cf/xKsmTeOP5ROx2iQAne02KfxM="}]}},"0.2.2":{"name":"spajs","description":"MVC框架","version":"0.2.2","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"0.0.4","art-template":"^2.0.3-rc5"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.2.2","_shasum":"92fb9517384df2412543d65ec7b0dfc602f2b1ab","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}],"dist":{"shasum":"92fb9517384df2412543d65ec7b0dfc602f2b1ab","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.2.2.tgz","integrity":"sha512-NL1H1VlMPtw/m4NzkoF3/4Ugkgmdupwm8gKcVNNoq0qlbaQt+l29ivn1MXDBz43HHtYtytcJn3xNMcIc+wQUtA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID9J+rI1T2JU0PrhmFeukIqR3JwH0wmZ2bWu1IqNDsRzAiA53IFEeVSlZMuUcKRwWNnYOjXPi3ecHyCVg/y4aZLQUw=="}]}},"0.2.3":{"name":"spajs","description":"MVC框架","version":"0.2.3","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"0.0.4","art-template":"^2.0.3-rc5"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.2.3","_shasum":"1881f00236dc847336bc172b25fcb85eba16b419","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}],"dist":{"shasum":"1881f00236dc847336bc172b25fcb85eba16b419","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.2.3.tgz","integrity":"sha512-SerOeZRWoqraO5BM4rMo8oZR3Urz2p3BIuM5hYjFao8iISt1+ydjmwCLyfB39X+PYPCVB5fJMXaJ7OewLBqcJg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHy0P7DVE1+yfuSgg/NPhWJIh1gY0Srbjw7H/l2ccP33AiEA8vlHK8KWSXnruhShHFCMMXu7vzYwSLg/b01gPsC57ew="}]}},"0.2.4":{"name":"spajs","description":"MVC框架","version":"0.2.4","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"0.0.4","art-template":"^2.0.3-rc5"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.2.4","_shasum":"1c99e6601bae12bc5c2ff8f180785ff8f1f467bf","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}],"dist":{"shasum":"1c99e6601bae12bc5c2ff8f180785ff8f1f467bf","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.2.4.tgz","integrity":"sha512-un+hiMn/FTvx8KH/8K+oykIgrJ5Qb/qaMiN9/Nv+oYyfzqAWjTo5ab0Ayu4a5otcsoD5IkhM5DyG3dTwvPxOUA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA/580gOMZAJPaq0mPjl9M7eYkWJoRif70FB7hDFdhvOAiEAxzFIZvP9SS8qm1TiUkAt34d8rP8ZbQMk1KbltNHU0R0="}]}},"0.2.5":{"name":"spajs","description":"MVC框架","version":"0.2.5","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"0.0.4","art-template":"^2.0.3-rc5"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.2.5","_shasum":"7fe6160028a283cf2ee64ee7046d0919be3c7290","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}],"dist":{"shasum":"7fe6160028a283cf2ee64ee7046d0919be3c7290","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.2.5.tgz","integrity":"sha512-5QZ1/zluxbpSOkA5CSlxRS2cTv6JYrluh5umhO6JYYtgmcTiqtvM927adu9/bdUwVjVWm8svHwQAhmm1jPBGiw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSs9Pc5mbYATeU6KS/HKEOQwjqvoRtAgKhyAiAYizBNgIhAIDNf7recgcPcINiHLI+Qa7LY44B5lFrKkRhNFlCc6d9"}]}},"0.2.6":{"name":"spajs","description":"MVC框架","version":"0.2.6","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"0.0.4","art-template":"^2.0.3-rc5"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.2.6","_shasum":"9fce00773f254dc89501b0e16850211619d602fb","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}],"dist":{"shasum":"9fce00773f254dc89501b0e16850211619d602fb","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.2.6.tgz","integrity":"sha512-j+P1yn5R2dXVMSZfmrNfw6hbww1BMQUUK6kvfDcsNKO3v0gL3qJqy9y9YNO1zZmOeVGZwM4sBiGd+8kGW/773g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIExnmiVPmU/zWNyGPUBES/SE2Z5Fl9DoWfXZaEz3GXw7AiBo+LWqcnfjjKqyuCvMP8F2D57kEoUncsDPJFIEPYp5og=="}]}},"0.3.0":{"name":"spajs","description":"MVC框架","version":"0.3.0","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"0.0.4","art-template":"^3.0.3","iscroll":"^4.0.0"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.3.0","_shasum":"949b3809ac7b895ee128b3c3c706a3e9c41a6241","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}],"dist":{"shasum":"949b3809ac7b895ee128b3c3c706a3e9c41a6241","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.3.0.tgz","integrity":"sha512-U77fxzKTmdMhTb+aALTt6XGRiWSARTV8A8QF64JZFh+SADxuQ3d7qctuqoDYidVYPPS+8CyOuWTVc9wKTNj3AA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrJTrC1rIux/w+gpRTqzaAvmKRcPu0lxVpHxUam3bhsQIgKq622ZzcI6Iu63Kywcln3VMvES5Ja3G7GJgyohAZMbk="}]}},"0.3.1":{"name":"spajs","description":"MVC框架","version":"0.3.1","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"^0.0.4","art-template":"^3.0.3"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.3.1","_shasum":"a40d62a55ab696e6b4b43f20aad6d47135add979","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}],"dist":{"shasum":"a40d62a55ab696e6b4b43f20aad6d47135add979","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.3.1.tgz","integrity":"sha512-Ul/McPAOZMciI+bWR5aa0et4KAjYevgf+GJE83Rppxg3/JQiwGxq3vnpGkUBF+KsxTSAhTwSYaSWyx8WVHdS7w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7epYFfmv8iGwVUfKCtpe2HlXgRvQ4lEWy+yTQQCR2HAIhANpUL4n0cEf+2Uqm9vj5+QLrckSfUFmFk4IEMgDYfaFe"}]}},"0.3.2":{"name":"spajs","description":"MVC框架","version":"0.3.2","author":{"name":"memory"},"main":"src/spa","engines":{"node":">= 0.10.0"},"dependencies":{"zepto":"^0.0.4","art-template":"^3.0.3"},"devDependencies":{"grunt-contrib-concat":"~0.3.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.6.0","grunt-contrib-clean":"~0.4.0","grunt-contrib-watch":"~0.4.0","grunt-contrib-qunit":"~0.4.0","grunt":"~0.4.4","qunitjs":"^1.14.0"},"keywords":["single page application","mvc"],"_id":"spajs@0.3.2","_shasum":"fcfd9875389f9aaa096be89425aefe7fb75f2f4a","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"memory","email":"xtuhcy@163.com"},"maintainers":[{"name":"memory","email":"xtuhcy@163.com"}],"dist":{"shasum":"fcfd9875389f9aaa096be89425aefe7fb75f2f4a","tarball":"https://registry.npmjs.org/spajs/-/spajs-0.3.2.tgz","integrity":"sha512-gGMXFwCSm0y+YOuM1NeHoVd71CdkdEGgYJ7UyshvJwTyrkdU9gJv1CM8+qc9iJXc86Sjn+AMqCSyVjSO8i3LTg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFoB6MtyhMVpD6/KY1DkwouUve3FcSOzrNFhSt4yMKFTAiEAuG976Rhc8kUEnbk2sYU8hknoPQ4nToRigPd1e5R6Htg="}]}}},"readme":"# spajs\r\n\r\n单页应用MVC框架\r\n\r\n依赖zepto和artTemplate，已经将zepto和artTemplate编译进项目中.\r\n\r\n## 下载和使用\r\n### 下载\r\n    npm install --save-dev spajs.js\r\n\r\n### 使用\r\n    <script src=\"dist/spajs.min.js\"></script>\r\n\r\n## 使用手册\r\n###Model-和数据相关的都放这里\r\nmodel负责数据处理，所有和数据相关的业务逻辑都放在这里，model关心的几个要点:\r\n1. 数据怎么获取\r\n2. 请求参数的校验\r\n3. 对数据的拦截处理\r\n4. 数据获取后的回调\r\n\r\n####创建一个典型的ajax的model\r\n    var mainModel = SPA.model.create({\r\n        server: \"http://host:port/remoting/main\"\r\n    });\r\n\r\n上面是创建一个典型的利用ajax获取服务器端数据的model，数据接口地址http://host:port/remoting/main\r\n\r\n####model的继承\r\n    var parentModel = SPA.model.create({\r\n        server: \"http://host:port/remoting\"\r\n    });\r\n\r\n    var demoModel = SPA.model.create({\r\n            tagName: \"demo\"\r\n        }, parentModel);\r\n\r\n1. parentModel是指定一个sever为http://host:port/remoting的基类\r\n2. demoModel继承parentModel,demoModel最终会访问http://host:port/remoting/demo接口\r\n\r\n####简单model\r\n    menuModel = SPA.model.create({\r\n        getData:function() {\r\n            return {\r\n                menu1:\"菜单1\"\r\n                ,menu2:\"菜单2\"\r\n            }\r\n        }\r\n    }, SPA.model.simpleModel);\r\n如果model的数据不是通过ajax获得，而是来自本地的一些数据，可以继承自SPA.model.simpleModel，重写getData方法，返回需要的数据。\r\n\r\n####数据校验\r\n    loginModel = SPA.model.create({\r\n        server:\"http://host:port/remoting/login\"\r\n        ,validate:{\r\n            email:{\r\n                email:{\r\n                    message:\"必须是邮箱\"\r\n                }\r\n            }\r\n            ,password:{\r\n                minLength:{\r\n                    params:[6]\r\n                    ,message:\"长度不能小于6\"\r\n                }\r\n                ,maxLength:{\r\n                    params:[12]\r\n                    ,message:\"长度不能大于12\"\r\n                }\r\n            }\r\n        }\r\n    });\r\n    loginModel.request({\r\n        email:\"test@test.com\"\r\n        ,password:\"123456\"\r\n    }, function(error) {\r\n        if(error.email) {\r\n            console.error(error.email);\r\n        } else if(error.password) {\r\n            console.error(error.password);\r\n        }\r\n    })\r\n\r\n上面对登录的邮箱和密码输入进行校验，目前内置的校验规则有：\r\n\r\n1. notEmpty\r\n2. isNumber\r\n3. min\r\n4. max\r\n5. minLength\r\n6. maxLength\r\n7. email\r\n\r\n####数据获取后的回调\r\nspa框架对数据获取后的回调是基于过滤器的设计\r\n\r\ndata->filter1(callback)->filter2(callback)……\r\n\r\n```javascript\r\n\r\n    loginInterceptor = SPA.interceptor.create({\r\n        process:function(data, views) {\r\n            return true;\r\n        }\r\n    });\r\n```\r\n\r\n上面是创建一个过滤器，data为返回的数据，views为需要通知的视图。返回true会传递到下一个过滤器，返回false则不再传递\r\n\r\n```javascript\r\n\r\n    spa.interceptor.viewsInterceptor = spa.interceptor.create({\r\n        process:function(data, views) {\r\n            for(var i in views) {\r\n                views[i].show(data);\r\n            }\r\n            return true;\r\n        }\r\n    });\r\n```\r\n\r\n上面是spa框架内置的视图回调过滤器，默认情况都会调用该过滤器。该过滤器会将数据通知各个视图进行显示。\r\n\r\n```javascript\r\n\r\n    baseModel = SPA.model.create({\r\n        server:\"remoting\"\r\n        ,interceptors:[loginInterceptor, SPA.interceptor.viewsInterceptor]\r\n    });\r\n```\r\n\r\n上面在定义model时加入了2个过滤器\r\n\r\n###View-和界面相关的都放这里\r\nview负责界面的渲染，目前采用artTemplate作为模板语言，view关心的几个要点：\r\n\r\n1. 模板语言artTemplate\r\n2. 视图定义\r\n3. 视图渲染方法render(data)\r\n4. 数据加载中渲染方法loading()\r\n5. 数据获取错误渲染方法error(model)\r\n6. 事件处理\r\n\r\n####模板语言artTemplate\r\n\r\n1. 本地模板定义：本地模板定义在页面中，如下：\r\n```html\r\n    <script id=\"book\" type=\"text/html\">\r\n    <ul class=\"list\">\r\n        <%for(i = 0; i < list.length; i ++) {%>\r\n        <li id=\"<%=i%>\" class=\"book\"><%=list[i]%></li>\r\n        <%}%>\r\n    </ul>\r\n    </script>\r\n```\r\n\r\n2.远程模板定义：模板可以按需从远程下载\r\n\r\n####视图定义\r\n1.本地视图定义\r\n    页面中加入：\r\n    <script id=\"book\" type=\"text/html\">\r\n    <ul class=\"list\">\r\n        <%for(i = 0; i < list.length; i ++) {%>\r\n        <li id=\"<%=i%>\" class=\"book\"><%=list[i]%></li>\r\n        <%}%>\r\n    </ul>\r\n    </script>\r\n    定义视图对象：\r\n    ajh.bookView = SPA.view.create({\r\n        templateId:\"book\"\r\n    });\r\n2.远程视图定义\r\n    将模板内容放入template文件下，book.html\r\n    ajh.bookView = SPA.view.create({\r\n        template:\"template/book.html\"\r\n    });\r\n\r\n##view和model的结合使用\r\n    model1.notifyView({parametes}, [view1, view2])\r\n\r\n    model1.callback({parameters}, function(data){\r\n\r\n    }, function(error){\r\n\r\n    });\r\n## Examples\r\n    http://cs.i139.cn/aijuhui/aijuhui/dist/index.html\r\n\r\n## Contributing\r\n    memory.hu\r\n\r\n## License\r\nCopyright (c) 2014 huchengyi  \r\nLicensed under the MIT license.\r\n","maintainers":[{"name":"memory","email":"xtuhcy@163.com"}],"time":{"modified":"2022-06-26T22:33:48.758Z","created":"2014-04-11T14:01:36.361Z","0.1.0":"2014-04-11T14:01:36.361Z","0.1.1":"2014-04-16T01:57:08.008Z","0.1.2":"2014-04-17T03:28:24.002Z","0.1.3":"2014-04-17T03:32:32.914Z","0.1.4":"2014-04-17T06:35:05.008Z","0.1.6":"2014-04-21T06:09:12.176Z","0.1.7":"2014-04-21T08:06:18.943Z","0.1.8":"2014-04-28T08:02:14.586Z","0.1.9":"2014-04-30T03:51:37.404Z","0.2.0":"2014-06-11T07:37:26.420Z","0.2.1":"2014-12-16T02:05:48.255Z","0.2.2":"2014-12-16T02:08:12.412Z","0.2.3":"2015-01-29T15:11:46.291Z","0.2.4":"2015-02-01T05:51:41.991Z","0.2.5":"2015-02-01T05:57:32.436Z","0.2.6":"2015-02-02T09:20:19.505Z","0.3.0":"2015-02-09T11:25:11.424Z","0.3.1":"2015-03-20T12:27:48.853Z","0.3.2":"2015-03-24T04:56:41.640Z"},"keywords":["single page application","mvc"],"author":{"name":"memory"},"readmeFilename":"README.md"}