2014-05-16 14 views
7

क्या AngularJS मॉडल डेटा के भीतर अभिव्यक्ति का मूल्यांकन करने का कोई तरीका है?अभिव्यक्ति में कोणीय जेएस अभिव्यक्ति

HTML:

<p> 
{{Txt}} 
</p> 


मॉडल:

{ 
    Txt: "This is some text {{Rest}}" 
    } 

    { 
     Rest: "and this is the rest of it." 
    } 

अंतिम परिणाम होगा: This is some text and this is the rest of it

उत्तर

10

आप स्ट्रिंग अंतर्वेशन को $interpolate सेवा का उपयोग कर सकते हैं ...

function ctrl ($scope, $interpolate) { 
    $scope.Txt = "This is some text {{Rest}}"; 
    $scope.Rest = "and this is the rest of it."; 
    $scope.interpolate = function (value) { 
     return $interpolate(value)($scope); 
    }; 
} 

<div ng-app ng-controller="ctrl"> 
    <input ng-model="Txt" size="60" /> 
    <p>{{ Txt }}</p> 
    <p>{{ interpolate(Txt) }}</p> 
</div> 

JSFiddle

+0

यह जवाब है! आपका बहुत बहुत धन्यवाद! – AnotherDeveloper

+0

बहुत अच्छा! धन्यवाद –

1

आप मॉडल के लिए जावास्क्रिप्ट का उपयोग करने पर आप कुछ इस तरह सरल कर सकते हैं:

var rest = 'and this is the rest of it'; 
$scope.txt = 'This is some text ' + rest; 

और ध्यान में रखते हुए, रखने के अपने <p>{{txt}}</p>

वैकल्पिक रूप से आप कर सकते हैं भाव एक साथ स्ट्रिंग <p>{{txt}} {{rest}}</p>

5

आप जेएस को ब्रैकेट में निष्पादित कर सकते हैं:

<p>{{Txt + ' ' + Rest}}</p> 

या एक फ़ंक्शन है कि पाठ आप चाहते बनाने के लिए:

$scope.getText = function() { 
    return $scope.Txt + ' ' + $scope.Rest; 
} 

<p>{{getText()}}</p> 
+1

ओपी ने पूछा कि अभिव्यक्ति स्वयं 'मॉडल' का हिस्सा हो सकती है (न केवल बिंदी एनजी)। –

+2

@ पीएम 77-1 और मैंने उसे दिखाया कि कैसे, एक समारोह के साथ। – SomeKittens

+1

कृपया देखें कि वह 'Txt' को कैसे परिभाषित करता है। क्या आपका कोड वांछित परिणाम देगा? –

संबंधित मुद्दे