小编rsm*_*thy的帖子

Javascript:使用动态变量名访问JSON数据中的嵌套值

我有一个嵌套的Javascript对象

var data = { 'name':    { 'heading': 'Name', 'required': 1, 'type': 'String' },
             'profile': {
                  'age':   { 'heading': 'Age', 'required': 0, 'type': 'Number' },
                  'phone': { 'heading': 'Phone', 'required': 0, 'type': 'String'},
                  'city':  { 'heading': 'City', 'required': 0, 'type': 'String'},
                  },
             'status':  { 'heading': 'Status', 'required': 1, 'type': 'String' }
           };
Run Code Online (Sandbox Code Playgroud)

在这里,我可以访问data.profile.age.type或data.name.type这些字段.没有问题如果我有动态变量名称,我可以访问如下.再一次,没问题.

f = 'profile'; data[f].age.type
Run Code Online (Sandbox Code Playgroud)

但是,这里我有变量名称,如'name','profile.age','profile.city'等,显然我无法访问它们,因为f ='profile.age'; 数据[f] .type不起作用.

谁能指导我如何以最直接和简单的方式访问它们(获取/设置)?

注意:我试过这个,它适用于get.

data.get = function(p) { o = this; return eval('o.'+p); };
f = 'profile.age'; data.get(f).name;
Run Code Online (Sandbox Code Playgroud)

虽然设置似乎不够简单.如果有更好的获取和设置解决方案,请告诉我.

javascript variables json nested

10
推荐指数
2
解决办法
8168
查看次数

Sails.js:模型的生命周期回调:它们是否支持 beforeFind 和 afterFind?

在sails.js 中,模型支持验证、创建、更新和销毁的生命周期回调。

是否也支持 find() 或 query 的回调?像 beforeFind() 和 afterFind()?

这个想法是一样的。我想在查询运行之前或查询运行之后验证/修改参数。

有什么想法吗?

models sails.js waterline

7
推荐指数
1
解决办法
1357
查看次数

Javascript:将自定义参数传递给回调函数

我有这个回调函数设置:

var contextMenu = [];
var context = [ { "name": "name1", "url": "url1" }, {"name": name2", "url: "url2" } ];
for(var i=0; i < context.length; i++) {
    var c = context[i];
    var arr = {};
    arr[c.name] = function() { callback(c.url); }
    contextMenu.push( arr );
}
function callback(url) {
   alert(url);
}
Run Code Online (Sandbox Code Playgroud)

问题是传递给回调的url值始终是上下文变量中的最后一个值 - 在本例中为"url2".我期望将特定值传递给回调的每个"实例",但由于回调似乎记住了相同的值,因此最后一次引用它.

我有点卡住了.任何帮助,将不胜感激.

PS:我正在使用jQuery ContextMenu,根据我的理解,它不支持将自定义数据发送到其回调函数.正是在这种背景下,我遇到了这个问题.在这种环境下要克服的任何建议也很有帮助!

javascript closures loops callback

6
推荐指数
1
解决办法
5161
查看次数