我遇到一个问题,其中带有 ng-href 标记的标记链接其中的范围参数会在范围更改时更新。我在这个答案中读到(为什么指令 ng-href 需要 {{}} 而其他指令不需要?) ng-href 使用 $observe ,当范围值更改时应该更改 ng-href 。
这是有问题的html链接。它有两个用于更改年份的按钮,一个用于显示年份的 ap 标签(id=yearp)和一个用于每个月的按钮(带有无法正常工作的链接)
<button id="left" style="display:inline;">left </button>
<p id="yearp" style="display:inline;"> {{curyear}} </p>
<button id="right" style="display:inline;"> right </button><br/>
<a ng-href="#calendar/month/{{curyear}}-01-01"><button style="display:inline;"> January </button></a>
<a ng-href="#calendar/month/{{curyear}}-02-01"><button style="display:inline;"> February </button></a>
<a ng-href="#calendar/month/{{curyear}}-03-01"><button style="display:inline;"> March </button></a>
<a ng-href="#calendar/month/{{curyear}}-04-01"><button style="display:inline;"> April </button></a>
<a ng-href="#calendar/month/{{curyear}}-05-01"><button style="display:inline;"> May </button></a>
<a ng-href="#calendar/month/{{curyear}}-06-01"><button style="display:inline;"> June </button></a>
<a ng-href="#calendar/month/{{curyear}}-07-01"><button style="display:inline;"> July </button></a>
<a ng-href="#calendar/month/{{curyear}}-08-01"><button style="display:inline;"> August </button></a>
<a ng-href="#calendar/month/{{curyear}}-09-01"><button style="display:inline;"> September </button></a>
<a ng-href="#calendar/month/{{curyear}}-10-01"><button style="display:inline;"> October </button></a>
<a ng-href="#calendar/month/{{curyear}}-11-01"><button style="display:inline;"> November </button></a>
<a ng-href="#calendar/month/{{curyear}}-12-01"><button style="display:inline;"> December </button></a>
这个页面的角度控制器看起来像这样
App.controller('yearController', function($scope){
var cdt = new Date();
$scope.curyear = cdt.getFullYear();
$("#left").click(function(){
$scope.curyear = $scope.curyear - 1;
$("#yearp").text($scope.curyear);
});
$("#right").click(function(){
$scope.curyear = $scope.curyear + 1;
$("#yearp").text($scope.curyear);
});
});
现在按下按钮 prev 和 next 正确更改 $scope.curyear 并在 yearp 标签中更新,但按下任何链接仍将带我到(如果按下一月)“日历/月/2015-01-01”无论如何$scope.curyear 是什么。有人对为什么会发生这种情况以及如何解决有任何意见吗?
提前致谢!