Visualforce: Uncaught TypeError: Невозможно прочитать свойство 'tid' из неопределенного
Я использую Visualforce Remoting для приложения и периодически получаю сообщение об ошибке:
Uncaught TypeError: Невозможно прочитать свойство 'tid' undefined из строки 84 файла библиотеки VFRemote.js.
Файл автоматически загружается на мою страницу моим контроллером, определяющим удаленные действия.
https://c.na4.visual.force.com/jslibrary/1383366200000/sfdc/VFRemote.js (мне известна заметка вверху, но этот скрипт не включен непосредственно на моей странице.)
Мне не ясно, что является причиной этого. Если я обновлю свой манифест кэша приложений, он выполнит обновление страницы, а затем ошибка исчезнет.
Какие-нибудь мысли? Это проблема с манифестом?
4 ответа
Просто хочу подтвердить, что я нашел комментарий @ Свена очень полезным. У меня было то же самое 'tid' undefined
проблема, и это было до меня тупо передать неопределенный параметр в RemoteAction
Я столкнулся с этой ошибкой, когда использовал угловые обещания и пакетные вызовы. Мне нужно было добавить:
{
buffer: false,
escape: true,
timeout: 120000
}
на все мои звонки, чтобы удаленный менеджер не собирал звонки, которые я хотел быть независимыми. Ключ установки buffer: false
,
Этот вопрос уже давно был опубликован, но все еще пишется на случай, если кто-нибудь из читателей будет в будущем. Ключ здесь, чтобы добавить { buffer: false, escape: true, timeout: 30000 }
То, что делает эта линия, - то, что это не позволит удаленному менеджеру не пакетировать удаленные вызовы. Почему это полезно, потому что иногда у нас просто нет данных для передачи в функцию удаленного взаимодействия, когда для кода JS происходит начальная загрузка, что приводит к тому, что неопределенные объекты передаются вызовам удаленного взаимодействия и, таким образом, к вышеприведенной ошибке.
Incade интересно, где это добавить:
scope.getParentId = function() {
EsignCongaSigningUrlRemoting.getEsignUrlParentIdFromObjectId($scope.objectId, 1, function(response, event) {
if(event.status) {
console.log('parentId in response = ',response);
$scope.parentId = response;
$scope.signingUrl($scope.parentId);
}
else {
$scope.parentId = '';
}
},{ buffer: false, escape: true, timeout: 30000 });
};
Проблема в том, что у вас есть метод Visualforce.remoting... внутри статического ресурса. Чтобы эта строка кода работала, она должна быть на вершине страницы. Вы должны переместить функцию, которая имеет это, на свою страницу визуальной силы, чтобы она работала