У меня есть установка, в которой я получаю некоторую информацию при вызове ajax, затем я немедленно использую часть этой информации для другого вызова, а затем заполняю некоторые поля.
Проблема в том, что я не уверен, как создать анонимную функцию, чтобы она могла вызывать this.plantName
.
Сейчас значение this.plantName
равно undefined
.
Я знаю, что отсутствуют закрывающие скобки, но я не буду пытаться выстроить их в ряд, так как это вызовет путаницу, поэтому пожалуйста, игнорируйте отсутствующие закрывающие скобки .
TabLinks.prototype.plantName = '';
TabLinks.prototype.init = function() {
this.updateTab('PlantDropDown', 'retrievePlants', 'retrieveAllPlants', 'tab3', function() { return this.plantName; });
};
function TabLinks() {
this.updateTab = function(entityname, wsbyid, webservicename, parentContainer, defaultValue) {
$("#" + parentContainer + "link").bind('click', function() {
$.ajax({
type: "POST",
...
success: function(result) {
myData = JSON.parse(result.d);
$.ajax({
type: "POST",
...
success: function(result2) {
...
myelem.value = JHEUtilities.testIsValidObject(defaultValue) ?
defaultValue() :
'';
Обновление:
Вот решение, которое сработало, я не реализовал два возврата функций:
this.updateTab('PlantDropDown', 'retrievePlants', 'retrieveAllPlants', 'tab3',
function() {
var app = this;
return function() {
return function() {
return app.plantName;
}
}()
}
);
Так что я должен был назвать это так:
defaultValue()();