AngularJS Id, счетчик и итерация списка - PullRequest
0 голосов
/ 27 апреля 2018

Я работаю над динамическим способом отображения объектов Qlik на странице с использованием JSON, JS и AngularJS. Стратегия заключается в создании функции $ scope.showObject (myObject), который позволяет мне использовать функцию qliks app.vizualization.create для создания объекта с указанным идентификатором. Я бы вызвал функцию на стороне DOM, используя ng-repeat, чтобы перебрать список объектов, которые мне нужно воспроизвести. Проблема в том, что я довольно новичок в AngularJS, и я столкнулся с этими часами, которые вызывают одну и ту же функцию 10 раз. В то же время я пытаюсь связать ID, созданный с помощью счетчика и связанный с ng-attr-id = "{{objectId}}".

Внутри моего контроллера:

var count = 1;
     $scope.showObjectsFrom = function(ourObject) {

     //creating my ID 
     var qvObject = "QV";
     $scope.objectId = qvObject + count.toString();

     //creating the object at the current ID
     app.visualization.create('kpi', [],
     JSON.stringify(ourObject)).then(function(vis) {
     vis.show(qvObject + count.toString())
         });

    count++;
    };

На стороне Dom:

        <ul>
        <div class="row">
        <div class="panel panel-default-border border">
            <li ng-repeat="qlikObject in qlikAngularRepeatListe" 
class="qvobject" ng-attr-id="{{objectId}}">
{{showObjectsFrom(qlikObject)}}
</li>
            </div>
            </div>

Что я делаю не так? Что можно изменить, мне нужно избавиться от тех часов, которые так часто вызывают функцию, но как?

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 27 апреля 2018

в ng-repeat есть свойство, которое называется $ index, оно вернет вам индекс элемента, который выполняется в текущей итерации.

Вы можете попытаться создать идентификатор, выполнив эту опцию:

ng-attr-id={{QV$index}}

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

...