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