小编Ian*_*vis的帖子

如何辨别字符串是一个stringify'd JSON对象

对于任何有兴趣的人,我最终在这里构建了一个"localstorage with expirations"脚本,http: //plugins.jquery.com/project/localcache

我在做什么:构建存储扩展,以便用户可以这样做:

localStorage.setThing(key, value)
Run Code Online (Sandbox Code Playgroud)

用户可以执行以下操作:

localStorage.setThing("key1", 1)
localStorage.setThing("key2", "this is a string")
localStorage.setThing("key3", { prop1: "this is a json obj" })
Run Code Online (Sandbox Code Playgroud)

在我的setThing方法中,我正在检查typeof for value,如果typeof value == "object",我将其存储为localStorage.setItem(key, JSON.stringify(value))

在getThing方法中,我知道进入localStorage的值总是一个字符串.那么,我该怎么做呢?

var val = localStorage.getItem("key3")
if (val is a previously JSON.stringify'd object) // <-- ??
    return JSON.parse(val)
Run Code Online (Sandbox Code Playgroud)

我是否需要对val进行正则表达式检查,如果有的话,是否有人有方便的模式告诉我字符串是否真的是JSON.stringify对象?

谢谢!

javascript jquery json local-storage

5
推荐指数
1
解决办法
2080
查看次数

jsrender if-else使用{{= propName}}

我正在尝试jsRender.

我想做的事:

JS模板:

<script id="theaterTemplate" type="text/x-jquery-tmpl">
    {{* 
        if ("{{=theaterId}}" == getCurrentTheaterId()) {
    }}
        <a class="active" href="#">
    {{*
        } else {
    }}         
        <a href="#">           
    {{* } }}
        {{=theaterName}}
    </a>
</script>
Run Code Online (Sandbox Code Playgroud)

在其他JS中:

function getCurrentTheaterId() {
    return "523";
}
Run Code Online (Sandbox Code Playgroud)

基本上,在模板中,如果迭代中的当前影院id与从js函数返回的内容匹配,则将该类设置为active."{{= theaterId}}"在if条件中中断.我猜你不允许在if条件下访问当前的json属性.

关于如何做到这一点的任何想法?

希望这是有道理的.谢谢!

javascript plugins jsrender

5
推荐指数
1
解决办法
1万
查看次数

如何正确设置localStorage变量

在 localStorage 中设置变量的正确方法是什么?

localStorage.hello = 'world'

或者

localStorage.setItem('hello','world')

javascript local-storage

5
推荐指数
1
解决办法
33
查看次数

jQuery验证插件 - 如何不显示"此字段是必需的"标签

如何为所有输入文本框关闭"需要此字段"的显示?我宁愿不必做这样的事情:

$("myForm").validate({
  messages: { myField1: { required: '' }, myField2: { required: '' }, myField3: { required: '' }}
});
Run Code Online (Sandbox Code Playgroud)

jquery jquery-validate

4
推荐指数
1
解决办法
4263
查看次数

div在另一个div顶部有保证金底部,保证金最高,只有1个保证金

我有一个div在另一个上面.顶部div有margin-bottom: 10px,底部div有margin-top: 10px,但两个div之间只有10px的空间.

实例:http://jsbin.com/efugok/1/edit

使用Css的Html:

<div style="margin-bottom:10px; background: #e6e6e6;" id="one">one</div>
<div style="margin-top:10px; background: #ccc" id="two">two</div>
Run Code Online (Sandbox Code Playgroud)

渲染:

在此输入图像描述

css margin

4
推荐指数
1
解决办法
1112
查看次数

解析ac #date是一个javascript日期甚至可以用')'解析?

我知道要转换C#日期,比如/Date(1430341152570)/转换为JavaScript日期,它是以下内容:

var part = "/Date(1430341152570)/".substr(6); // => "1430341152570)/"
var jsDate = new Date(parseInt(part));
Run Code Online (Sandbox Code Playgroud)

我的问题:该part值是如何包含尾随)/能够解析为int的parseInt?JS尝试转换具有)/字符的东西时不会抛出错误吗?如果part值类似于"/Date(......)/".substr(6).replace(')/','')b/c,那么对我来说会更有意义,至少你要把它作为一串被解析成int的字符串.

javascript c#

4
推荐指数
1
解决办法
73
查看次数

ckeditor如何允许.insertHtml("<customTag myAttr ='value'"> </ customTag>")

var currentDialog = CKEDITOR.dialog.getCurrent();
currentDialog._.editor.insertHtml("<customTag myAttr='var'></customTag>");
Run Code Online (Sandbox Code Playgroud)

引发错误, TypeError: Cannot read property 'isBlock' of undefined

如果我尝试.insertHtml("<span>hello</span>")它就可以了.

如何更改ckeditor以允许我通过指定我自己的自定义html标签.insertHtml()?我喜欢把它改成类似的<span class='custom'...东西,但是我不得不处理遗留的CMS文章.使用最新的ckeditor.谢谢.

ckeditor

3
推荐指数
1
解决办法
5158
查看次数

将更改保存到app.js NodeJs时,应用程序未更新

我正在构建我的第一个NodeJs应用程序,希望当我在app.js文件上按Control + S时浏览器会更新。例如,最初我要输出它Hello world,然后我要在浏览器中node app.js访问http:// localhost:3000。如果返回编辑app.js并将其更新为Hello world2,则必须通过取消节点Control+C,然后node app.js才能查看更新。甚至没有F5在我的浏览器中执行操作也会获得最新更改。

node.js

3
推荐指数
1
解决办法
2660
查看次数

Vue2组件$ emit不调用父函数

我在一个组件内部有一个按钮,该组件正在调用$emit('close')a @close='myMethod',myMethod并且当您单击组件内部的按钮时,持有组件的容器具有a 并且不会被调用.

HTML:

<button @click="myMethod">outer</button>
<div class="parent" @close="myMethod">
  <my-component></my-component>
</div>
<div id="my-component" style="display:none;">
  <button @click="$emit('close')">emit</button>
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

Vue.component('my-component', {
    template: '#my-component'
});

var app = new Vue({
    el: '#app',
    methods: {
      myMethod: function() {
        console.log('myMethod invoked');
      }
    }
});
Run Code Online (Sandbox Code Playgroud)

如果单击外部按钮,则会调用该方法,但不会调用模板内的按钮.我错过了什么?

Jsbin:http://jsbin.com/cuhipekocu/edit?html,js,console,output

components vue.js

3
推荐指数
1
解决办法
598
查看次数

Firebase Cloud Messaging如何退订主题

从主题中删除令牌的静态API URL是什么?我知道将令牌添加到主题的POST api调用类似于以下内容:

https://iid.googleapis.com/iid/v1/{token}/rel/topics/{topicName}
Run Code Online (Sandbox Code Playgroud)

当我想要可以从服务器中使用的简单端点列表时,文档说明就没有什么用。谢谢。

rest firebase firebase-cloud-messaging

3
推荐指数
1
解决办法
1382
查看次数