在PHP中,我可以:
$theVariable = "bigToe";
$bigToe = "is broken";
Run Code Online (Sandbox Code Playgroud)
这样:
echo "my ".$theVariable." ".$$theVariable;
Run Code Online (Sandbox Code Playgroud)
会显示
my bigToe is broken
Run Code Online (Sandbox Code Playgroud)
我将如何进行与JavaScript类似的操作?
我想我在这里错过了一些非常简单的东西.我想传递一个函数一个对象和方法来调用.这篇文章的原因太长了.:-)
var myObj = new someObject();
var funcName = "hide";
function callObject(myObj,funcName){
obj.hide(); //this works
obj[funcName]; //doesn't work
obj.eval(funcName); //doesn't work either.. tried many variations
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
如何将此响应转换为有效数组?
我想对Object.map数据执行:
var user_roles = "['store_owner', 'super_admin']";
Run Code Online (Sandbox Code Playgroud)
这不是有效的JSON,所以我无法使用 JSON.parse
所以这就是我想要做的:
我的变量命名data_1已设置。
var data_1 = {
"y_legend": {
"text": "# of Patients",
"style": "{font-size: 20px; color: #778877}"
},
"x_legend": {
"text": "AUG 09 - OCT 09",
"style": "{font-size: 20px; color: #778877}"
}
};
Run Code Online (Sandbox Code Playgroud)在下拉列表中,用户选择具有data_1该调用值的选项load('data_1')。
function load(data)
{
tmp = findSWF("my_chart");
x = tmp.load( JSON.stringify(data) );
}
Run Code Online (Sandbox Code Playgroud)我的问题:我选择了一个带有值的选项,data_1而不是变量本身。所以在我的函数中load('data_1'),当alert(data)我得到data = 'data_1'.
那么如何data_1通过只传递字符串的名称来获取加载函数中变量的内容呢?
这是我缩短的脚本:
var string1 = "This is string 1";
var string2 = "This is string 2";
function test() {
var selectedOption = $("select#myoptions option:selected").attr("id");
var str = 'string'+selectedOption;
$("div#result").html(str);
}
$("select#myoptions").change(test);
Run Code Online (Sandbox Code Playgroud)
我有一个下拉列表,每个选项都有一个整数id.选择此下拉列表时,我希望jQuery获取所选选项的id,并显示最后具有所选id的字符串变量的内容.
如果选择了ID为"1"的选项,将显示"This is string 1",...
但我现在得到的是显示文本"string1"而不是文本"This is string 1".
我需要一些帮助.非常感谢!
是否可以使用字符串从对象调用方法?
var elem = $('#test'); //<div id="test"></div>
var str = "attr('id')";
//This is what I'm trying to achieve
elem.attr('id'); //test
//What I've tried so far
elem.str; //undefined
elem.str(); //Object [object Object] has no method 'str'
var fn = eval(str); //attr is not defined
eval(elem.toString()+'.'+str); //Unexpected identifier
//Only solution I've found so far,
//but is not an option for me
//because this code is in a function
//so the element and method call
//get passed in and I wouldn't know
//what …Run Code Online (Sandbox Code Playgroud) 我有一个JSON字符串,其中包含我需要调用的函数.
我的JSON看起来像这样:
{
"type":"listview",
// the function I would like to call
"content":"dynoData.getRetailers()",
"custom_classes":["","nMT pickList","",""],
"lib":"static_listview.html",
"tmp":"tmp_listview_inset",
"lang":"locale_search",
...
Run Code Online (Sandbox Code Playgroud)
我正在使用它在客户端上组装jQuery Mobile列表视图.要获取动态数据,我需要调用dynoData.getRetailers().
但是我很难打电话:-)
这就是我正在尝试的:
var dyn = $.parseJSON( passed_JSON_string ),
content = dyn.content;
Run Code Online (Sandbox Code Playgroud)
我希望调用它会触发函数,但它只是将函数名称作为字符串返回.
问题:
如何触发实际功能?
谢谢!
编辑:
我将JSON字符串放在实际页面上的HTML元素上,我将替换为我正在构建的元素.这是HTML:
<ul data-template="true" data-config='{
"type":"listview",
"content":"dynoData.getRetailers()",
"custom_classes":["","nMT pickList","",""],
"lib":"static_listview.html",
"tmp":"tmp_listview_inset",
"lang":"locale_search",
"theme":"c",
"filter":"true"
}'></ul>
Run Code Online (Sandbox Code Playgroud)
我可以把所有这些都归入data-属性,但那会很混乱......
解决方案:这有效:
1)将JSON更改为:
..."method":"getRetailers", ...
Run Code Online (Sandbox Code Playgroud)
2)从Javascript调用:
content = dynoData[ dyn.method ]();
Run Code Online (Sandbox Code Playgroud)
感谢大家!
如何手动使用预编译的handlebars.js模板?
比方说,我们有
source = "<p>Hello, my name is {{name}}</p>"
data = { name: "Joe" }
Run Code Online (Sandbox Code Playgroud)
目前,我有
template = Handlebars.compile(source)
render: -> template(data)
Run Code Online (Sandbox Code Playgroud)
源来自数据库,为了减少编译时间,我想使用一个编译步骤,先使用来对模板服务器端进行预编译Handlebars.precompile(source),然后再使用类似的方法:
template = precompiled_template
render: -> precompiled_template(data)
Run Code Online (Sandbox Code Playgroud)
precompiled_template是带有函数定义的字符串,因此不起作用。
另外,我还发现了Hanlebars.compile(source)() == Handlebars.precompile(source),但是在浏览了把手的源代码,即编译器和运行时之后,我仍然不确定如何实现这一点。
假设没有可用于修改某人计算机的浏览器端安全漏洞,我不明白使用如何eval导致任何真正的威胁.
有人可以解释这是怎么可能的.有人可以在用户的计算机上显示某些内容,但如果没有重定向或接受下载,则无法实现真正的伤害.不会造成服务器端损坏,对吗?
有没有办法通过属性传递数组或对象?喜欢:
<div id="myelem" myattr="{ title: 'hello', author: 'mike'}, { title: 'world', author: 'hellen'}, {...}"/>
Run Code Online (Sandbox Code Playgroud)
我只是使用 javascript 尝试过这个,但只返回了第一个对象,我想要这样的东西:
for(let i=0; i<this.myattr.length; i++){
console.log(this.myattr.title);
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢
javascript ×8
eval ×3
jquery ×3
json ×2
attributes ×1
function ×1
html ×1
methods ×1
object ×1
parameters ×1
php ×1
polymer ×1
string ×1
triggers ×1
variables ×1