Невозможно передать дополнительный аргумент каждой функции UnderscoreJS - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь передать дополнительный объект с именем modelObj в функцию _.each подчеркивания, где я не получаю контекст внутри цикла.

Мой код выглядит так,

showHideBudget: function(contentObj, modelObj){ 
   _.each(contentObj.find('.budgetSec'), function(item){ 
       // ===> Unable to reference modelObj here <===

       budgetFlag = true;
       return;
    }, modelObj)
 })

Может кто-нибудь помочь?

Редактировать - вот что я заставил его работать.

Наконец-то нашел, что пошло не так. Кажется, мне нужно пропустить и this, и modelObj, чтобы все заработало (вот так).

showHideBudget: function(contentObj, modelObj){ 
   _.each(contentObj.find('.budgetSec'), function(item){ 
       // ===> Unable to reference modelObj here <===

       budgetFlag = true;
       return;
    }, modelObj, this)
 })

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Насколько я понимаю, этот третий аргумент - это то, с чем this связан в вашей функции iteratee. Вы должны иметь возможность получить ссылку на modelObj через this ту функцию, которая вызывается для каждого элемента результата contentObj.find('budgetSec').

Ссылка: Что такое контекст в _.each (список, итератор, [контекст])?

0 голосов
/ 05 ноября 2018

Попробуйте вместо этого. Вы должны передать объект на _.each

showHideBudget: function(contentObj, modelObj){ 
   _.each(contentObj.find('.budgetSec'), function(item){     
       budgetFlag = true;
       return;
    }, modelObj);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...