Использовать ng-Model динамически на основе заданной переменной

Попробуйте это,

Z = fillmissing(X_coordinate,'linear','SamplePoints',time);

Это будет интерполировать отсутствующие значения.

Не забудьте преобразовать все нули в NaN.

zt = 1:1:5;
za = [100 50 0 0 20];
za(za == 0) = NaN;

zb = fillmissing(za,'linear','SamplePoints',zt);

zb =

100 50 40 30 20

1
задан raul782 19 January 2019 в 13:06
поделиться

1 ответ

Если вы используете item.data.section, то это превратится в undefined, поскольку в вашем объекте нет ключа с именем section, и тогда ng-model будет undefined + room, что приведет к undefined . [+1112]

Вы можете использовать ng-model="item.data['section' + room]" для ссылки на ваши ключи. У вас есть рабочий пример ниже. Я добавил функцию обновления, чтобы увидеть, что привязка ng-model действительно работает.

var module = angular.module("myModule", []);
module.controller("myController", function($scope) {
  $scope.item = {
    key: "itemKey",
    name: "itemName",
    data: {
      sectionA: "section A String ",
      sectionB: "section B String ",
      sectionZ: "section Z String "
    }
  };

  $scope.rooms = ['A', 'B', 'Z'];

  let i = 0;
  $scope.updateValues = function() {
    setInterval(function() {
      Object.keys($scope.item.data).forEach(key => {
        let v = $scope.item.data[key];
        v = v.substr(0, v.length - 1) + i;

        $scope.item.data[key] = v;
        i = (++i) % 10;
      });

      setTimeout(function() {
        $scope.$apply()
      }, 0);
    }, 1000);
  }

  $scope.updateValues();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="myModule">
  <div ng-controller="myController">
    <div class="item" ng-repeat="room in rooms">
      {{ room }}
      <input type="text" name="{{ item.key }}" class="form-control" ng-model="item.data['section' + room]">
    </div>
  </div>
</div>

Ура!

0
ответ дан Adrian Pop 19 January 2019 в 13:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: