【问题标题】:AngularJS Hebrew Date ConverterAngularJS希伯来日期转换器
【发布时间】:2026-02-03 04:00:01
【问题描述】:

我正在使用 Hebcal 希伯来日期 API 使用 AngularJS 制作一个简单的希伯来日期转换器。

HTML如下:

<body ng-app="HebrewDate">

    <div class="page-container" ng-controller="DateCtrl">

        <input type="text" ng-model="inputYear" placeholder="Year (YYYY)"/>
        <input type="text" ng-model="inputMonth" placeholder="Month (MM)"/>
        <input type="text" ng-model="inputDay" placeholder="Day (DD)"/>

        <button class="bt bt-achieve" ng-click="url(inputYear, inputMonth, inputDay)">Convert</button>

    </div>

</body>

还有脚本:

var app = angular.module('HebrewDate', []);

app.controller('DateCtrl', function($scope, $http) {

    $scope.url = function(inputYear, inputMonth, inputDay, outputYear) {

        var dateUrl = "http://www.hebcal.com/converter/?cfg=json&gy=" + inputYear + "&gm=" + inputMonth + "&gd=" + inputDay + "&g2h=1";
        var output;

        $http({
            method: 'GET',
            url: dateUrl
        }).success(function(data, status){

            output = angular.fromJson(data);

            outputYear = output.hy;


        }).error(function(data, status){

            // in case of error, sob. 

        }); 

    }

});

对于我的生活,我无法弄清楚如何获取转换后的日期(例如 outputYear)以返回 HTML——试图让它显示在输入字段的正下方。我尝试过使用带有 ng-bind 的 div,但我显然遗漏了一些东西。 AngularJS 新手,非常感谢一些帮助。 谢谢!

【问题讨论】:

    标签: javascript angularjs web


    【解决方案1】:

    1) 将此添加到您的 html 中:

    {{outputYear}}
    

    2) 删除 outputYear 作为控制器函数的参数

    3) 改变

    'outputYear = output.hy;'
    

    '$scope.outputYear = output.hy;'
    

    【讨论】:

      【解决方案2】:

      您在控制器内私下设置变量,模板无权访问它。该模板可以访问$scope,因此如果您使用$scope.someVar = someValue,那么您可以在模板中使用(显示)someVar

      正如HankScorpio所说,您需要进行如下修改。

      在控制器中:

      $scope.outputYear = output.hy;
      

      在您看来,您可以使用 ng-bind 或者也可以:

      <span>{{outputYear}}</span>
      

      【讨论】: