首先是npm依赖包不在只限于server端使用,在client端也可以用了!相比以前用browserify省力了。
所以对于atmospherejs的依赖也就不是特别重要了,当初创立atmospherejs就是旨在为meteor创建一个自己的资源库。但同时meteor有是对cordova,npm多面支持,同样javascript代码,meteor的资源库并没有自己的优势,在npm下鸡肋就特别明显。在meteor全端支持npm资源后,也有不少atmospherejs不少资源停止了publish。所以要替换成npm使用。不得不说meteor是在在做一次革命。
以Handlebars为例,meteor的Handlebars并不完整,要使用要另外依赖npm的Handlebars
在client中使用
想再动态加载完成后添加script
Handlebars = require("Handlebars");
template = Handlebars.compile(source);
$('.main-content').fadeOut ->
$('.main-content').html(template());
$('.main-content').fadeIn ->
console.log "main-content fadeIn"
loadjscssfile("js/materialize.min.js", "js")
override template
template registerHelper
参考Using Global Template Helpers
定义:
Template.registerHelper 'hasPermission', (permission, scope) ->
return hasPermission(permission, scope, atLeastOne)
使用:
{{hasPermission "a" "b"}}
{{hasPermission "a"}}
<template name="main">
{{#if subsReady}}
{{> status}}
{{> Template.dynamic template=center}}
{{> sideNav }}
{{else}}
{{> pageLoading}}
{{/if}}
</template>
顺序加载,blaze的动态渲染,也会先进行main create rendered-> status create rendered-> center create rendered-> sidenav create rendered
{{{html 代码不支持script 标签 link标签}}} //这也是template并没有完全像jquery,所以依然要使用javascript做添加
更新mongodb的template不要在oncreated,onrendered中运行 defer,interval等timers
RoomRoles.find({ rid: @data._id }).observe
added: (role) =>
changed: (role, oldRole) =>
removed: (role) =>
网友评论