Я хочу, чтобы иметь возможность определять переменную, а затем использовать указанную переменную в методе response() внутри функции module.run(). У меня есть этот код в моем его():Использование переменных в функции httpBackend mock
var testValue=randomValue(); // suffice to say, a random value generator
var httpBackendMock = function() {
angular.module('httpBackendMock', ['ngMockE2E', 'name.of.app'])
.run(function($httpBackend) {
$httpBackend.whenPOST(/.*\/api\/data/).respond(function(method, url, data, headers) {
return [200, '<?xml version="1.0" encoding="UTF-8" standalone="yes"?> \
<data>'+testValue+'</data>', {}];
});
....
Но testValue
переменная, определенная выше httpBackendMock
объект не виден внутри функции запуска() на всех, но будет «не определен».
Мое понимание состоит в том, что переменные, определенные в переменной «var» в JS, доступны для внутреннего кода, но этого здесь не происходит. Есть ли способ заставить переменные работать внутри?
'httpBackendMock' не является объектом. Это функция. Пожалуйста, покажите, что с ним происходит. Если он выполняется с помощью 'browser.executeScript (httpBackendMock)', это явно не сработает, поскольку область внешней функции запускается в узле, а область внутренних функций запускается в браузере. – estus
@estus Это от https://docs.angularjs.org/api/ngMockE2E/service/$httpBackend. Я отметил его ngmocke2e, потому что мне, вероятно, нужны люди, знакомые с этой картой. –
В ссылке, которую вы разместили, нет упоминания о функции 'httpBackendMock'. Пожалуйста, покажите, как эта функция вызывается. – estus