2015-10-28 6 views
0

Я обновляю значение родительской переменной из изолированной области действия директивы с использованием $ scope. $ Parent.parentvariable.field = новое поле.

Когда я консолю, как console.log ($ scope. $ Parent.parentvariable.field), поле содержит новые значения, как показано на консоли. Однако шаблон, который должен обновляться (поскольку он связан с полем), не обновляется.

Использование $ apply() как $ scope. $ Parent. $ Apply() throws $ digest уже используется.

Что здесь общего не работает?

Попытка сделать что-то вроде:

$scope.$parent.group_levers.levers.forEach(function (lv,indexLever) { 
    if (lv.RFLeverId == lever.RFLeverId) { 
     lv.description.leverValue.forEach(function (leverVal, indexLeverVal) { 
      if (leverVal.RFLeverValueId == splashResponseRaw.levers[0].description.leverValue[0].RFLeverValueId) { 
       $scope.$parent.group_levers.levers[indexLever].description.leverValue[indexLeverVal] = splashResponse; 
       //$scope.$parent.$apply(); 
      } 
     }) 
    } 
}) 
$timeout(function() { 
    $scope.$parent.$apply(); 
}, 10) 
+0

пожалуйста, добавьте код, который вы сделали –

+0

обновленный с фрагмент кода –

+0

использования SetTimeout (функция() {$ объем $ применяется();.}, 0) –

ответ

0

попробовать это. после выполнения небольшой доли миллисекунд.

$timeout(function(){ 
    scope.$apply(); 
},100) 
+1

TimeSpan должен быть 0 или некоторое значение, скажем, 100 или 50 –

+0

, и область применения здесь будет областью директивы. т.е. я должен написать внутри директивного контроллера как: '$ timeout (function() { scope. $ apply(); }, 0)' после внесения изменений –

+0

вы можете сохранить его 100, но 0 также работать, потому что все же он будет выполняться позже, ok, я увеличиваю его до 100 – ngLover

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