我是角色的新手,我想知道如何在ng-click上更改json数组。我尝试了不同的方法,但代码没有用。我不确定如何创建此功能。
这是我的代码。我希望应用程序加载时默认为第1章,当用户单击菜单链接时,它会更改为传递给函数的任何章节编号。
menu.html ----查看
<li>
<a href>Practice</a>
<ul>
<li ng-repeat="words in allTerms track by $index">
<a href class="{{$index}}" id="{{ $index }}" ng-click="testing($event); PracticeTerm(); changeData('chapter2');" >{{ words.term }}</a>
</li>
</ul>
</li>
我正在使用服务加载数据
app.factory('quest', ['$http', function($http) {
return $http({
method: 'GET',
url: 'data/study.json'
}).success(function(data) {
return data;
})
.error(function(err) {
return err;
});
}]);
以下是我到目前为止控制器的代码段。
quest.success(function(data) {
$scope.data = data;
$scope.total = data.chapter1.length;
$scope.allTerms = data.chapter1;
// stores current term index
$scope.shared = [];
$scope.changeData = function(thechapter){
return $scope.total = 'data.'+ thechapter + '.length';
$scope.allTerms = 'data.' + thechapter;
console.log($scope.total);
};
});
JSON数据----示例数据
"chapter1": [
{
"id": "1",
"chapter": "1",
"term": "Closingstage",
"pronun": "kloh-zing steyj",
"soundfile": "",
"definition": "Closing stage definitions ---------CLOSING STAGE DEFINITION"
},
{
"id": "2",
"chapter": "1",
"term": "CaptialWords",
"pronun": "CAP-I-Tal Worlds",
"soundfile": "",
"definition": "Capital Worlds definitions----------------CAPITAL WORLD DEFINITION"
}
],
"chapter2": [
{
"id": "1",
"chapter": "2",
"term": "Closingstage2222",
"pronun": "kloh-zing steyj222222222",
"soundfile": "",
"definition": "Closing stage definitions ---------CLOSING STAGE DEFINITION22222222"
},
{
"id": "2",
"chapter": "2",
"term": "CaptialWords22222222222",
"pronun": "CAP-I-Tal Worlds",
"soundfile": "",
"definition": "Capital Worlds definitions----------------CAPITAL WORLD DEFINITION222222222222"
}
]
答案 0 :(得分:0)
尝试使用以下功能代替控制器中的功能
$scope.changeData = function(thechapter){
$scope.allTerms = data[thechapter];
console.log($scope.total);
return $scope.total = data[thechapter].length;
};
请注意,我已将返回行移动到该函数的最后一行,以便其他行运行。