我正在使用Hebcal Hebrew Date API用AngularJS制作一个简单的Hebrew日期转换器。
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新手,非常感谢您的帮助。谢谢
1)将其添加到您的html:中
{{outputYear}}
2) 删除outputYear作为控制器函数的参数
3) 更改
'outputYear = output.hy;'
至
'$scope.outputYear = output.hy;'
您在控制器中私下设置变量,而模板无法访问该变量。模板可以访问$scope
,因此如果执行$scope.someVar = someValue
,则可以在模板中使用(显示)someVar
。
正如HankScorpio所说,你需要修改如下。
在控制器中:
$scope.outputYear = output.hy;
在你看来,你可以使用你提到的ng-bind,也可以:
<span>{{outputYear}}</span>