我使用 ng-repeat
创建了下拉菜单,但是如果 json 是字符串,我的函数将失败。但如果它是整数,它就可以正常工作。
正如你们所看到的,图表将通过年份选择下拉菜单上传。
我相信,因为数据是整数,例如。"year": 2011
我还有季度下拉菜单。使用 "quarter": "1"
,这将无法更新,但是如果我有 "quarter": 2
则效果很好。
<select class="YearSelector" ng-model="selectedyear" ng-change="sampleDropDown()">
<option ng-repeat="year in filterOptions.stores | unique: 'year'">
{{ year.year }}</option>
</select>
Quarter:
<select class="QuarterSelector" ng-model="$parent.quarter" ng-change="sampleDropDown()">
<option ng-repeat="quarter in filterOptions.stores | unique: 'quarter'">
{{ quarter.quarter }}</option>
</select>
我的功能:
$scope.sampleDropDown = function(){
myChart.data = getData(data, $scope.selectedyear, $scope.quarter);
myChart.draw(500);
}
最佳答案
看起来您的 HTML 标记导致选项值以前导回车符结束。如果添加如下所示的console.log,您就可以看到它:
function getData(data, year, quarter) {
console.log("year value '" + year + "'") ;
在控制台中您将看到:
"year value '
2011'"
如果您将 HTML 选项标记更改为全部在一行上,我认为您会很顺利,例如本季度:
<option ng-repeat ...>{{ quarter.quarter }}</option>
此外,您可以使用 Angular's ngOptions而不是 option+ng-repeat 组合。
关于javascript - AngularJS 函数无法更新 json 字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39896997/