2012-10-05 36 views
9

के साथ Smarty PHP clashing जब मैं एक ही टेम्पलेट में AngularJS का उपयोग कर रहा हूं, तो मैं Smarty को एक त्रुटि फेंकने से कैसे रोकूं। मैं इस कोड के साथ एक चतुर पृष्ठ टेम्पलेट है:एंजुलरजेएस

<li ng-repeat="i in items"> 
     <p class="item">{{i}}</p> 
</li> 

और जब मैं एक ब्राउज़र में देखने मैं एक रिक्त पृष्ठ मिल रहा। अगर मैं स्वैप

PHP Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template ... <p>{{i}}</p>; unknown tag "i 

{{मैं}} के लिए {{4}} या किसी अन्य अंकों यह ठीक काम करता है: मैं अपने अपाचे error_log है, जो निम्नलिखित शामिल हैं में एक बड़ी त्रुटि मिलती है। और मैं गणित का भी उपयोग कर सकता हूं, {{8 + 2}} पृष्ठ में 10 दिखाएगा। क्या Smarty angularJS के गणित कर रहा है?

उत्तर

16

इस प्रयास करें: चतुर साइट से

<li ng-repeat="i in items"> 
    <p class="item">{literal}{{i}}{/literal}</p> 
</li> 

उद्धरण ...

{शाब्दिक} टैग डेटा का एक ब्लॉक सचमुच लिया करने की अनुमति दे। यह आमतौर पर जावास्क्रिप्ट या स्टाइलशीट ब्लॉक के आसपास उपयोग किया जाता है जहां {घुंघराले ब्रेसिज़} टेम्पलेट डेलीमीटर वाक्यविन्यास में हस्तक्षेप करेंगे। {Literal} {/ literal} टैग के भीतर कुछ भी व्याख्या नहीं किया गया है, लेकिन प्रदर्शित किया गया है।

+3

हे, वहाँ चला जाता है terseness;) –

+0

बेशक! मैं templating इंजन के लिए नया हूँ, साथ ही यह 2 बजे था, लेकिन स्पष्ट जवाब ब्रैकेट से बचने के लिए है। बहुत बहुत धन्यवाद –

4

आप के अलावा अन्य प्रक्षेप प्रतीकों का उपयोग करने कोणीय कॉन्फ़िगर कर सकते हैं {{}}: https://stackoverflow.com/a/11108407/215945

20

बहुत सफाई घोल: आप thusly AngularJS के टेम्पलेट सीमांकक बदल सकते हैं:

angular.module('app', []) 
    .config(['$interpolateProvider', function ($interpolateProvider) { 
    $interpolateProvider.startSymbol('[['); 
    $interpolateProvider.endSymbol(']]'); 
    }]);