Начиная с версии AngularJS v1.4.0 существует встроенная служба $httpParamSerializer
, которая преобразует любой объект в часть HTTP-запроса в соответствии с правилами, указанными на странице docs .
Его можно использовать следующим образом:
$http.post('http://example.com', $httpParamSerializer(formDataObj)).
success(function(data){/* response status 200-299 */}).
error(function(data){/* response status 400-999 */});
Помните, что для правильной записи формы заголовок Content-Type
должен быть изменен. Чтобы сделать это глобально для всех запросов POST, этот код (взятый из полуответчика Albireo) можно использовать:
$http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
Чтобы сделать это только для текущей записи, свойство headers
запроса -объект необходимо изменить:
var req = {
method: 'POST',
url: 'http://example.com',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: $httpParamSerializer(formDataObj)
};
$http(req);
if (this.Visible && !this.CanFocus)
{
// modal child windows are open
}
Длинная короткая история: открытие модальной формы является выполнением блоков на основной форме, пока модальное окно открыто, таким образом, Ваша основная форма никогда не может проверять, чтобы видеть, закрылся ли ее открытый какие-либо модальные формы до окончания модальной формы . Другими словами, Ваш вопрос основан на неверном толковании того, как модальные формы работают, таким образом, его спорное в целом.
Для того, что его ценность, возможно сказать, существуют ли какие-либо модальные открытые формы:
foreach (Form f in Application.OpenForms)
{
if (f.Modal)
{
// do stuff
}
}