web-dev-qa-db-ja.com

Angular 1で現在の年を取得するには、{{}}だけを使用しますか?

かなり複雑なangular Webアプリでは、動的な年がディレクティブのないフッターに表示される必要があります。angular方法はありますか{{SomeDateFunction()}}だけでそれを行うには?

何も表示されない{{Date.now() | date:'yyyy'}}を言う人を見たことがあります。私は{{new Date().getFullYear()}}を試しましたが、angularを壊し、エラーが

構文エラー:トークン 'Date'は、[Date()。getFullYear(]。

ルートスコープからスコープをリンクしたくない、またはこれを1年間だけのディレクティブに入れたくないのです。これは、{{}}式で解決できる種類のものであり、日付に関連しない単純な{ {}}式は問題なく表示されます。

10
Bronanaza

コントローラ内の日付オブジェクトをスコープに定義する必要があります。

$scope.date = new Date();

そして、ビューで行います

{{date| date:'yyyy'}}
19
squiroid

回答がかなり遅いので、うまくいけばすでに回答を得ています。みんなのために答えを出す-

(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>

それはあなたが望むものを手に入れるはずです。

3
pasaban