Изменить JSON Call на клик

0

Я новичок в угловом, и я хочу знать, как изменить json-массив на ng-click. Я пробовал разные методы, но код не работал. Я не уверен, как создать эту функциональность.

Вот мой код. Я хочу, чтобы значение по умолчанию было главой 1, когда приложение загружается, и когда пользователь щелкает ссылку меню, он изменяется на любой номер главы, переданный в функцию.

menu.html ---- view

<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
    Я имею в виду данные из главы меняется. Например, если пользователь щелкает главу 2, данные из массива главы 2 будут отображаться при вызове.
Теги:
model-view-controller

1 ответ

0

Попробуйте использовать следующую функцию вместо той, которая находится в вашем контроллере

$scope.changeData = function(thechapter){       
 $scope.allTerms = data[thechapter];
 console.log($scope.total);
 return $scope.total = data[thechapter].length;
 };

обратите внимание, что я переместил обратную линию, чтобы быть последней строкой в функции, чтобы выполнялись другие строки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню