powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Передать сферической функции нужные аргументы
15 сообщений из 15, страница 1 из 1
Передать сферической функции нужные аргументы
    #38021502
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На клиенте есть глобальный объект с разными функциями. От сервера на ajax-запрос возвращается json с именем функции и ее аргументами, ее нужно выполнить.

Объект:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
class DDesktop {
    createListSelector(url: string, opener: DWindow, targetField:string):void {
        //...
    }
}

var Desktop = new DDesktop();


json с параметрами вызова:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
"desktopFunc":{
  "name":"createListSelector",
  "args":{
    "url":"default.aspx",
    "opener":"",
    "targetField":"ID"
  }
}


Подготовка вызова:
Код: javascript
1.
2.
3.
4.
5.
var sArgs: string="", oArgs=[];
for (var arg in opts.desktopFunc.args)sArgs += arg + ",";
sArgs = sArgs.substr(0, sArgs.length - 1);
var func:Function = new Function(sArgs, "Desktop." + data.desktopFunc + "(" + sArgs + ")");
func(???);

Как теперь создать и передать параметры в func, чтобы в каждый аргумент попало соответствующее значение? eval не подходит, потому что для аргументов с пустым значением (в примере opener) значение берется из объекта в контексте вызова func.
...
Рейтинг: 0 / 0
Передать сферической функции нужные аргументы
    #38021507
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это на каком языке программирования?
...
Рейтинг: 0 / 0
Передать сферической функции нужные аргументы
    #38021537
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это TypeScript. Тот же самый жс, только с блэкджеком и шлюхами типами и ООП. Транслируется в жс.
...
Рейтинг: 0 / 0
Передать сферической функции нужные аргументы
    #38021556
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем ф-циям прередавать объект desktopFunc.args, и пусть каждая из них сама известные ей его поля разбирает
...
Рейтинг: 0 / 0
Передать сферической функции нужные аргументы
    #38021560
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
язык интересный, я про него слышал, но ознакомление отложил пока не перейду на VS2012
...
Рейтинг: 0 / 0
Передать сферической функции нужные аргументы
    #38021569
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,
как-то так?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
var args = opts.desktopFunc.args;
var sArgs: string="", oArgs=[];
for (var arg in args) {
    sArgs += arg + ",";
    oArgs.push(args[arg]);
}
sArgs = sArgs.substr(0, sArgs.length - 1);
var func:Function = new Function(sArgs, "Desktop." + data.desktopFunc + "(" + sArgs + ")");
func.apply(this, oArgs);
...
Рейтинг: 0 / 0
Передать сферической функции нужные аргументы
    #38021591
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
function foo(args) {
  var a = [], key;
        
  for (key in args) {
    a.push(key + ': \'' + args[key] + '\'');
  }
        
  alert('args: {' + a.join(', ') + '}');
}
      
var func = new Function('args', 'foo(args)');
      
func({ 'url': 'default.aspx', 'opener': '', 'targetField': 'ID' });
...
Рейтинг: 0 / 0
Передать сферической функции нужные аргументы
    #38021598
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
var func:Function = new Function('args', 'Desktop.' + opts.desktopFunc.name + '(args)');
func(opts.desktopFunc.args);
...
Рейтинг: 0 / 0
Передать сферической функции нужные аргументы
    #38021676
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганельязык интересный, я про него слышал, но ознакомление отложил пока не перейду на VS2012Я только из-за него и перешел)
mage.lanкак-то так?То что нужно, спасибо.
...
Рейтинг: 0 / 0
Передать сферической функции нужные аргументы
    #38022570
Фотография Ифреймов Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

на экшен скрипт похоже
гадость
...
Рейтинг: 0 / 0
Передать сферической функции нужные аргументы
    #38022571
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ифреймов Васягадостьпро C# тоже так говорили
...
Рейтинг: 0 / 0
Передать сферической функции нужные аргументы
    #38022574
Фотография Ифреймов Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаганельИфреймов Васягадостьпро C# тоже так говорили
сугубо имхо
дело вкуса
...
Рейтинг: 0 / 0
Передать сферической функции нужные аргументы
    #38025014
Фотография iConst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЭто TypeScript. Тот же самый жс, только с блэкджеком и шлюхами типами и ООП. Транслируется в жс.Наконец, это меня сподвигнуло - воткнул TS в студию. :) В принципе, забавно. Для жирного клиента самое-то. Особенно легло - есть интерфейсы! Теперь MVC-на-клиенте проще реализовать...
...
Рейтинг: 0 / 0
Передать сферической функции нужные аргументы
    #38025020
Фотография iConst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только, почему-то он добавился в общую C# секцию - не в веб... И в обыкновенный проект нужно ручками компиляцию пихать... :(
...
Рейтинг: 0 / 0
Передать сферической функции нужные аргументы
    #38026385
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iConstТолько, почему-то он добавился в общую C# секцию - не в веб... И в обыкновенный проект нужно ручками компиляцию пихать... :(Фокус: создаете папку ts-проекта в папке основного проекта, присоединяете к солюшену, скриптам прописываете соответствующие пути, и все кучей нормально билдится. Или по отделности. :)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Передать сферической функции нужные аргументы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]