13.12.2016, 14:02 | #1 |
Участник
|
Bug with Mscrm.CrmDialog?
Добрый день!
Столкнулся с одной особенностью/багом (?) при работе с недокументированным методом Mscrm.CrmDialog. Суть проблемы в том, что если у нас должны открываться два диалоговых окна: Первое просит установить какой-то атрибут или что-нибуть сделать, после чего через CallBack вызывается функция, которая открывает еще одно окно, после первого, то последнее окно тупо висит. Если же открывать его сразу, то есть NameSpace.Open, то все будет ок. Если же делать NameSpace.Bar => NameSpace.Foo => NameSpace.Open, то почему-то не работает( X++: NameSpace.Bar: function (param1, param2) { //logic missed Foo('Some Id', function () { if(param1 == "Some Condition") { NameSpace.Open(param1); } }, null); }, NameSpace.Foo = function (id, successCallback, failCallback) { if (id) { var dialogArgs = { Param1: id }; var dialog = new Mscrm.CrmDialog(Mscrm.CrmUri.create("$webresource:Dialog_one.html"), dialogArgs, 600, 240, null); dialog.setCallbackReference(dialogCallback); dialog.show(); } else { dialogCallback(true); } function dialogCallback(result) { if (result) { if (successCallback) { successCallback(); } } else { if (failCallback) { failCallback(); } } } } NameSpace.Open = function (param1) { var dialogWebResource = "$webresource:Dialog_two.html"; var params = { Param1: "", Param2: "" }; var dialog = new Mscrm.CrmDialog(Mscrm.CrmUri.create(dialogWebResource), params, 580, 270, null); dialog.setCallbackReference(saveDialogValues); dialog.show(); function saveDialogValues(result) { //***** Do something } } Последний раз редактировалось Ion; 13.12.2016 в 14:04. |
|