博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lungo 使用说明及心得 中文api —— JavaScript部分
阅读量:6706 次
发布时间:2019-06-25

本文共 6283 字,大约阅读时间需要 20 分钟。

  hot3.png

前面总结了一篇的笔记,这篇将要记录在学习LungoJS时的用到的javacript方法和心得:

Core

核心部分比较简单,从方法名字上面大概就能看出是做什么用的,本人使用的比较少

log()

主要是向控制台输出调试信息;有三个等级 1普通日志、2警告 、3错误

Lungo.Core.log(1, "Launched event");Lungo.Core.log(2, "Warning!!");Lungo.Core.log(3, "Error!!!!");

execute()

执行预先定义的回掉函数,官方文档中说可以执行多个方法,本人测试只执行了第一传入的方法 

var myFunc = function(){    alert("func1")};var myFunc2 = function(){   alert("func2")};Lungo.Core.execute(myFunc);

bind()

虚拟一个新的方法,将一个函数的返回值与给定的序列绑定(合并拼接)

var example = "This is ";var addText = function(textToAdd){    text = this;    for(var i = 0, len = textToAdd.length; i < len; i++){        text += " " + textToAdd[i];    }    return text;};var text = ["an", "example"];var finalText = Lungo.Core.bind(example, addText)(text);
text将作为addText方法的参数

mix()

将序列进行混合更新,只是简单的针对对应键值进行更新,其余混合进去,如官方例子

var CONFIG_BASE = {    name: 'lungo_db',    version: '1.0'};var CONFIG = {    version: '1.1';}var finalConfig = Lungo.Core.mix(CONFIG_BASE, CONFIG);
 本人测试
var CONFIG_BASE = {    name: '小明',    age: '10'};var CONFIG_1 = {   name: '小红',    age: '9'} var CONFIG_2 = {   name: '小李',   age: '11',   sex:'male'}
var finalConfig = Lungo.Core.mix(CONFIG_2, CONFIG);var first =Lungo.Core.mix(CONFIG_BASE, CONFIG) //上面代码中的 var second=Lungo.Core.mix(first, CONFIG_2) result:second Object {name: "小李", age: "11", version: "1.1", sex: "male"}

 isOwnProerty()、toType()、toArray()、orderByProperty()、findByProperty()

都比较简单,可以查看 

除此以外,还有两个常用的方法isMobile()和environment()判断当前访问的设备是什么,来针对不同的设备显示不同的样式和功能

Lungo.Core.isMobile();Lungo.Core.evironment();

 cache

Lungo有自己的内存缓存机制,

var framework = {name: "Lungo", twitter: "lungojs"};Lungo.Cache.set("lungoFramework", framework); //实现缓存var cachedFramework = Lungo.Cache.get("lungoFramework"); //获取缓存Lungo.Cache.remove("lungoFramework");   //删除缓存Lungo.Cache.exists("lungoFramework");  //判断是否已经缓存

但是当浏览器或app关闭就清空了,而且没有全部清空clear()的方法,可以自己根据html5的新特性localstorage自己扩展本地缓存类

DOM

Lungo有自己获取dom元素的机制和方法Lungo.dom("")

  • Tap here to change the color
Subscribe to a tap event with a callbackLungo.dom('#main-article li').tap(function(event) { Lungo.dom(this).toggleClass('light').toggleClass('dark');});
因为Lungo是依托于quoJS的,这里有个简单的方法可以简化代码量 $$('#main'),类似于就Query,不过注意这里是两个$符号

.ELEMENT

.Carousel

滚动效果,这是一个非常实用的功能,可以实现图片的轮播,应用的导航页面(beginner),而且他能很智能的判断滚动中所处的位置、自动跳转到上一个下一个

var example = Lungo.Element.Carousel(el, function(index, element) {    Lungo.dom("section#carousel .title span").html(index + 1);});var example = Lungo.Element.Carousel(el);Lungo.dom('[data-direction=left]').tap(example.prev);var example = Lungo.Element.Carousel(el);Lungo.dom('[data-direction=left]').tap(example.next);Longo.Core.log(1,example.position())

.count

显示特定信息的数量,同设置html属性data-counter=“12”效果一样

Lungo.Element.count("#messages", 12);
此方法同样比较使用,可以放到新闻更新的数量,收藏的数量,代办事宜的数量等等

.loading

显示加载动画

Lungo.Element.loading("#main-article", 1); //设定显示的标签和时间

.process

官方说是可以实现进度条功能,本人没能调试出来,有高手实现的,可以指点一下小弟哦

.pull

拖曳刷新的功能,相信大家无论是在微博或其它新闻客户端上都见过类似的功能

  • Test this featury only drag down. This element has an associated event
var pull_example = new Lungo.Element.Pull('#main-article', { onPull: "拖拽下拉刷新", //下拉时显示文本 onRelease: "释放加载新数据", //释放是显示文本 onRefresh: "刷新...", //刷新数据显示文本 callback: function() { //回调函数 alert("成功!"); pull_example.hide(); }});

比较遗憾的是LungoJS只支持顶部下来效果,没有地步向上的拖曳效果

.Menu

控制data-control="menu"导航标签的显示和隐藏

Lungo.Element.Menu.show("options-icons")Lungo.Element.Menu.hide("options-icons")Lungo.Element.Menu.toggle("options-icons")
这个方法可以解决前面提到的选择导航menu,不能自动隐藏必须选一个菜单 才能将menu隐藏的问题

.NOTIFICATION

又一个实用的功能——通知提醒
var afterNotification = function(){    //Do something};Lungo.Notification.show(    "check",                //图标    "Success",              //标题    3,                      //显示时间    afterNotification       //可选参数,成功后的回调函数);//Show loading screenLungo.Notification.hide();
Lungo.Notification.sucess(    "check",                //图标    "Success",              //标题    "Sucess Desc",           //描述信息    3,                      //显示时间    afterNotification       //可选参数,成功后的回调函数);
Lungo.Notification.error(    "check",                //图标    "UnSuccess",              //标题    "UnSuccess Desc",           //描述信息    3,                      //显示时间    afterNotification       //可选参数,成功后的回调函数);
Lungo.Notification.confirm({    icon: 'user',    title: '确认.',    description: 'Description of confirm.',    accept: {        icon: 'checkmark',        label: 'Accept',        callback: function(){ alert("Yes!"); }    },    cancel: {        icon: 'close',        label: 'Cancel',        callback: function(){ alert("No!"); }    }});  Lungo.Notification.html('

Hello World

', "Close");

  error

 confirm

  html

.Router

建上一篇文章的部分

. ASIDE

控制侧边栏的显示

Lungo.Aside.show("my-aside");Lungo.Aside.hide();Lungo.Aside.toggle("my-aside");

.ARTICLE

Lungo.Article.clean("article_id", "user", "Title", "Description", "Refresh")

也比较实用,可以放在内容更新是使用

.service

settings

配置信息:文档类型,是否跨域,是否异步加载等等

Lungo.Service.Settings.async = true;//异步Lungo.Service.Settings.error = function(type, xhr){    //Do something};Lungo.Service.Settings.headers["Content-Type"] = "application/json"; //头文件信息Lungo.Service.Settings.crossDomain = false; //跨域Lungo.Service.Settings.timeout = 10; //相应时间

get()

异步获取其它页面信息,可以设定返回值类型json, xml, html, or text,相当好用

var url = "http://localhost:8080/myService";var data = {id: 25, length: 50};var parseResponse = function(result){    //Do something};Lungo.Service.get(url, data, parseResponse, "json");//Another examplevar result = Lungo.Service.get(url, "id=25&len=50", null, "json");
我记得这里是不能通过这个方法获取返回值的,以为get方法是异步的,这里需要设置才能获取到值
Lungo.Service.Settings.async = false

.post()

异步提交数据

.json()

同理get()

.cache()

以日期模式自动缓存页面获取到的信息

var result = Lungo.Service.cache(    url,             //请求url    "id=25&len=50",  //参数    "2 hours",       //过期时间    null,            //回调方法    "json"           //缓存类型);

补充两个我常用的两个方法

1. 重新初始化节点,当向列表等元素中追加内容、改变原有节点属性等有时会用到 

 Lungo.Boot.Data.init("a[data-view-article='star']"); 

2. 动态加载页面

 Lungo.Resource.load("detail.html", "section#main"); //要加载的页面和将页面加载到哪个section

转载于:https://my.oschina.net/rc6688/blog/161826

你可能感兴趣的文章
遍历json获得数据的几种方法
查看>>
php Collection类的设计
查看>>
c++中的计时器代码
查看>>
语义Web和本体开发相关技术
查看>>
Mysql集群读写分离(Amoeba)
查看>>
Quest for sane signals in Qt - step 1 (hand coding a Q_OBJECT)
查看>>
SpringBoot的注解:@SpringBootApplication注解 vs @EnableAutoConfiguration+@ComponentScan+@Configuration...
查看>>
MVVM模式之:ViewModel Factory与注入
查看>>
SQL Server性能调优之执行计划深度剖析 第一节 浅析SQL执行的过程
查看>>
Adhesive框架系列文章--报警服务模块使用和实现
查看>>
利用自定义IHttpModule来实现URL地址重写
查看>>
在网页上嵌入 PowerPoint 演示文稿
查看>>
javascript日期格式化函数,跟C#中的使用方法类似
查看>>
CURL基于cookie的自动登录脚本
查看>>
Android杂谈--Activity、Window、View的关系
查看>>
使用delphi 开发多层应用(十)安全访问服务器
查看>>
JavaScript计算字符串中每个字符出现的次数
查看>>
mvc中的ViewData用到webfrom中去
查看>>
小白学数据分析------>描述性统计术语汇总
查看>>
STL的常用算法
查看>>