2015-11-23 3 views
0

я иметь эту функцию внутри моей функции директива ссылка:.

scope.$parent.resetData(){ 
    scope.data = ''; 
} 

в моем HTML:

<ul ng-model="selectedObject"> 
    <li>{{ object.label }}</li> 
</ul> 
<button ng-click="resetData()">reset!</button> 
<directive data={{ selectedObject.dataset }}></directive> 

и в моем app.controller

$scope.$watch('selectedObject', function(){ 
    $scope.resetData(); //this cant be used 
}); 

я не могу использовать $ scope.reset() в области контроллера, есть способ, чтобы иметь возможность повторно использовать эту функцию в си самый простой способ вместо того, чтобы делать завод/услугу для этого набора данных?

+0

Можете ли вы объяснить, почему вы не можете использовать '$ scope.reset()' в области контроллера? Я не преуспеваю. – toddmo

+0

, который, как предполагается, является функцией, которую я создал в моей директивной ссылке, которую я хочу использовать в моем приложении. Это не работает, но я могу использовать ее в шаблоне – AbdulHamid

+0

, но вы можете сказать 'scope.data = ''' в контроллере, правильно? – toddmo

ответ

1

Подайте директиву selectedObject вместо selectedObject.dataset и дайте ей управлять внутренним сбросом.

Это было бы более инкапсулировано, что было бы хорошо. Если изменение selectedObject всегда сбрасывает данные, мышление о директиве как компоненте и наличие внутренней логики делает ее более самодостаточной. Таким образом, внешний код не должен беспокоиться о том, чтобы помочь директиве выполнять свою работу.

+0

я закончил делать это! спасибо – AbdulHamid

0

Если вставить CTRl аргумент функции связи Вы можете поговорить непосредственно с родительским контроллером

link: function(scope, el, attr, ctrl) { 
     scope.isSmall = function(){ 
      return ctrl.isSmall(); 
     }; 
    } 

По крайней мере, как это работает для меня

+0

спасибо, что это сработало, но после этого мне пришлось столкнуться с целым рядом новых вещей, чтобы исправить – AbdulHamid

+0

@AbdulHamid Да, для меня это очень часто случается. – sillysicko

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