2017-09-26 4 views
0

J'ai un calcul en AngularJS qui calcule un coût. Cela fonctionne très bien dans tous les navigateurs (que j'ai testés) sauf à partir de Safari sur iPads et iPhones.Le calcul Angularjs ne fonctionne pas en safari sur iPad/iPhone

Le calcul se présente comme suit:

£ {{ ((((((((height * width)/1000000) * square_meter_price) + panel_price) * 1)) * (1 + (lookup.dl_markup-0) + (Colours.options.markup-0))) + (lookup.dl_extra_cost-0) + (Colours.options.extra_cost-0) + (hingeholesno * hinge_hole_price)) * panel_quantity | number : 2 }} 

En safari sur iPad/iPhone, il affiche le code ci-dessus plutôt que le coût (calcul global)

Toutes les idées sur la façon de résoudre ce serait grandement apprécié car j'ai cherché des heures sans joie.

+0

Désolé pour la question ne sont pas liées, mais pourquoi vous avez ce genre d'expression de cette façon? C'est illisible également pour un ordinateur. Alors pourquoi multipliez-vous le premier membre par 1 * 1? – quirimmo

+0

cela fonctionne et calcule comme il se doit - mais pas en safari sur iPad/iPhone. –

+1

"Ça marche" n'est pas une réponse. Les choses ne doivent pas seulement fonctionner, mais avoir un sens. Et une multiplication par 1, n'a pas beaucoup de sens pour moi avec un premier regard. Ensuite, diviser ce calcul, vous pouvez déboguer le problème plus facilement et vous pouvez le tester unitaire, si vous déplacez votre code dans le contrôleur et non en ligne dans le code HTML – quirimmo

Répondre

0

i résolu cela en utilisant montre $ dans le contrôleur:

$scope.$watch('((((((((height * width)/1000000) * square_meter_price) + panel_price) * 1)) * (1 + (lookup.dl_markup-0) + (Colours.options.markup-0))) + (lookup.dl_extra_cost-0) + (Colours.options.extra_cost-0) + (hingeholesno * hinge_hole_price)) * panel_quantity | number : 2', function(fc) {$scope.FullCost = fc;}); 

Ensuite, en utilisant {{FullCost}} dans le code HTML - il fonctionne maintenant et affiche dans tous les appareils