AngularJS希伯来语日期转换器

时间:2015-03-04 01:28:42

标签: javascript angularjs web

我使用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的新手,非常感谢一些帮助。 谢谢!

2 个答案:

答案 0 :(得分:1)

1)将此添加到您的html:

{{outputYear}}

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

3)改变

'outputYear = output.hy;'

'$scope.outputYear = output.hy;'

答案 1 :(得分:0)

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

正如HankScorpio所说,你需要修改如下。

在控制器中:

$scope.outputYear = output.hy;

在您的视图中,您可以按照提到的那样使用ng-bind,也可以使用:

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