2016-05-17 2 views
-1

помогите мне, я хочу установить значение переменной в асинхронный метод (данные загружаются с db), проблема будет установлена ​​на последнюю запись. Вот мой код:Назначить переменное значение асинхронному методу

var _resolve = { 
    lazyLoad: ['$ocLazyLoad', function($ocLazyLoad) { 
     return $ocLazyLoad.load(angular.copy(angular.fromJson(menu.resolve))); 
    }] 
} 

примера данные:

> -- one.js 
> -- two.js 
> -- three.js 

из кода выше, menu.resolve является объектом из базы данных, решительность меню будет возвращать «three.js» во всех строках. как установить значение переменной в каждую строку?

Thank! :)

+0

Похоже, вы будете нуждаться, чтобы разобрать JSON ответа и вручную обновить DOM соответствующим образом. –

ответ

0

Это типично для яваскрипта природы то, что вам нужно сделать, это использовать сомнительное замыкание, чтобы решить эту проблему, я дам у примера

for(var i=0;i<=2;i++;) 
{ 
      (function(myVar) { // this will hold a value of i 
        $("#someDom").append(myVar)//whatever ur logic should be here 
      })(i); 
} 
+0

Создание функции внутри цикла является ** ужасной практикой **, вызывает еще больший урон тем, кто новичок в javascript, которые, возможно, даже не понимают последствий. – Azamantes

+0

спасибо! моя проб решается сейчас, вот мой измененный код: состояние = { \t \t \t \t \t URL: menu.url, \t \t \t \t \t Название: menu.title, \t \t \t \t \t значок: menu.icon, \t \t \t \t \t \t \t \t templateUrl: menu.template_url, \t \t \t \t \t Контроллер: menu.controller, \t \t \t \t \t решают: ResolverFunc (меню) \t \t \t} я помещен в функцию внешней петли. –

Смежные вопросы