Tengo una fábrica que solo devuelve un montón de valores de configuración, algo como esto:
angular.module('myApp').factory('configService', function (settings) { var serviceObj = {}; serviceObj.showPrices = function () { return settings.showPrices; } return serviceObj; });Quiero usar esta función showPrices() para representar condicionalmente los desgloses de precios en una directiva que se usa para representar los detalles de los artículos, pero la forma en que lo configuré no funciona. Mi directiva se parece a esto:
angular.module('myApp').directive('itemSummary', function(configService){ return { templateUrl:'views/item-summary.html', restrict: 'E', replace: true, scope: { configService: '&' }, link: function linkFx(scope, attributes){ function renderPriceBreakdown(){ console.log(configService.showPrices()); ... } } } });La línea relevante de mi plantilla se ve así:
<div ng-if="renderPriceBreakdown() && configService.showPrices()"> ... </div>Parece que tengo acceso a configService desde dentro de mi directiva (.js), ya que el archivo console.log de depuración que agregué en renderPriceBreakdown() está devolviendo mi configuración con precisión, pero tratar de llamarlo desde la plantilla no funciona. ¿Qué estoy haciendo mal? No quiero dar cuenta de showPrices() desde dentro de renderPriceBreakdown().