2017-01-05 6 views
9

एक काफी जटिल कोणीय वेब ऐप में, मुझे एक ऐसे पाद लेख में दिखाने के लिए गतिशील वर्ष की आवश्यकता है जिसमें निर्देश नहीं है। क्या {{SomeDateFunction()}} का उपयोग करके ऐसा करने का एक कोणीय तरीका है?केवल {{}} का उपयोग करके कोणीय 1 में वर्तमान वर्ष कैसे प्राप्त करें?

मैंने लोगों को {{Date.now() | date:'yyyy'}} कहा है, जो कुछ भी प्रदर्शित नहीं करता है। मैं {{new Date().getFullYear()}} जो कोणीय टूट जाता है की कोशिश की है और त्रुटि का कहना है

Syntax Error: Token 'Date' is an unexpected token at column 5 of the expression [new Date().getFullYear()] starting at [Date().getFullYear(].

मैं सिर्फ वर्ष के लिए एक निर्देश में जड़ दायरे से एक गुंजाइश लिंक, या इस डाल करने के लिए नहीं करना चाहते, यह वास्तव में ऐसी चीज है {{}} अभिव्यक्तियों को हल करने में सक्षम होना चाहिए, और गैर-तिथि से संबंधित सरल {{}} अभिव्यक्तियां ठीक दिखती हैं।

+2

मुझे लगता है कि आप गलत समझते हैं कि कोणीय अभिव्यक्ति क्या हैं। वे मनमाने ढंग से जावास्क्रिप्ट निष्पादित नहीं करते हैं, वे '$ स्कोप 'पर गुणों से जुड़ते हैं। यदि आपके पास '$ scope' पर कोई प्रॉपर्टी है जो एक फ़ंक्शन है, तो वे उस फ़ंक्शन को निष्पादित करेंगे। – Claies

+2

https://docs.angularjs.org/guide/expression 'दिनांक'' विंडो' ऑब्जेक्ट का सदस्य है। कोणीय अभिव्यक्ति 'eval' का उपयोग नहीं करते हैं, और इसलिए' विंडो 'ऑब्जेक्ट को अभिव्यक्तियों का खुलासा नहीं करते हैं। आपको वैध समाधान के लिए नीचे 'स्क्वायरॉय' का उत्तर देखने की आवश्यकता होगी। –

+0

मुझे लगता है कि मैं कार्यों के साथ अभिव्यक्ति भ्रमित कर रहा था, अंतर्दृष्टि के लिए धन्यवाद। – Bronanaza

उत्तर

13

आपको नियंत्रक के अंदर दिनांक वस्तु को दायरे पर परिभाषित करने की आवश्यकता है।

$scope.date = new Date(); 

और फिर ध्यान में रखते हुए

{{date| date:'yyyy'}} 
+1

यह वह नहीं है जिसे मैं सुनना चाहता था, लेकिन पुष्टि के लिए धन्यवाद। – Bronanaza

2

कर इसकी जवाबी कार्रवाई के लिए बहुत देर हो चुकी है और उम्मीद है कि आप पहले से ही इस सवाल का जवाब मिल गया है। , हर किसी की खातिर जवाब देते हुए -

(function(angular) { 
 
    'use strict'; 
 
    var app = angular.module("myApp", []); 
 
    app.controller('dateController', function($scope) { 
 
    $scope.SomeDateFunction = function() { 
 
     var currentdate = new Date(); 
 
     return currentdate.getFullYear(); 
 
    } 
 
    }); 
 
})(window.angular);
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <script data-require="[email protected]" data-semver="1.6.4" src="https://code.angularjs.org/1.6.4/angular.min.js"></script> 
 
    <script src="script.js"></script> 
 
</head> 
 

 
<body ng-app="myApp"> 
 
    <div ng-controller="dateController"> 
 
    <h1>Hello World!</h1> &copy; this is copyright protected as of {{SomeDateFunction()}} 
 
    </div> 
 
</body> 
 

 
</html>

यह आप क्या चाहते हैं आप मिलना चाहिए।

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