meteor 1.4更新之后的变革

2016-08-31  本文已影响44人  肖雨San

首先是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) =>

上一篇下一篇

猜你喜欢

热点阅读