когда флажок = правда

0

Я пытался решить свою проблему, но я не могу понять, что делать.

У моего JSFIDDLE есть dropmenu со зданием. Каждый уровень здания имеет ценность. У меня есть общая работа, но мне нужно уничтожить итог. Я добавил флажок, чтобы использовать, если его уничтожить, но я не могу понять, как это сделать. я думал о ng-if но не могу работать, как использовать его с тем, что мне нужно, но я приветствую любую помощь. Мне нужно, чтобы subTotalOP равнялся OP, когда установлен true, поэтому я могу добавить все доспехи, которые уничтожаются отдельно от общего количества

var appBubble = angular.module('myExample', []);

function myCTRL($scope) {
  $scope.myOptionsOP = [{
    "armour": 1000,
    "label": "1"
  }, {
    "armour": 2000,
    "label": "2"
  }, {
    "armour": 4000,
    "label": "3"
  }, {
    "armour": 8000,
    "label": "4"
  }, {
    "armour": 16000,
    "label": "5"
  }, {
    "armour": 32000,
    "label": "6"
  }, {
    "armour": 64000,
    "label": "7"
  }, {
    "armour": 750000,
    "label": "8"
  }];

  $scope.myOptionsWH = [{
    "armour": 100,
    "label": "1"
  }, {
    "armour": 600,
    "label": "2"
  }, {
    "armour": 1100,
    "label": "3"
  }, {
    "armour": 1600,
    "label": "4"
  }, {
    "armour": 2100,
    "label": "5"
  }, {
    "armour": 2600,
    "label": "6"
  }, {
    "armour": 3100,
    "label": "7"
  }, {
    "armour": 3600,
    "label": "8"
  }, {
    "armour": 4100,
    "label": "9"
  }, {
    "armour": 4600,
    "label": "10"
  }, {
    "armour": 5100,
    "label": "11"
  }, {
    "armour": 9277,
    "label": "12"
  }, {
    "armour": 17280,
    "label": "13"
  }, {
    "armour": 415000,
    "label": "14"
  }];

  $scope.myOptionsLP = [{
    "armour": 450,
    "label": "1"
  }, {
    "armour": 788,
    "label": "2"
  }, {
    "armour": 1378,
    "label": "3"
  }, {
    "armour": 2412,
    "label": "4"
  }, {
    "armour": 4221,
    "label": "5"
  }];

  $scope.myOptionsSY = [{
    "armour": 2000,
    "label": "1"
  }, {
    "armour": 4000,
    "label": "2"
  }, {
    "armour": 6000,
    "label": "3"
  }];

  $scope.myOptionsDK = [{
    "armour": 550,
    "label": "1"
  }, {
    "armour": 1200,
    "label": "2"
  }, {
    "armour": 1850,
    "label": "3"
  }, {
    "armour": 2500,
    "label": "4"
  }, {
    "armour": 3150,
    "label": "5"
  }, {
    "armour": 3800,
    "label": "6"
  }, {
    "armour": 4450,
    "label": "7"
  }, {
    "armour": 5100,
    "label": "8"
  }, {
    "armour": 5750,
    "label": "9"
  }, {
    "armour": 6400,
    "label": "10"
  }, {
    "armour": 7050,
    "label": "11"
  }, {
    "armour": 9150,
    "label": "12"
  }];


};
table,
th,
tr,
td,
p {
  font-family: Verdana, Arial, Helvetica, sans-serif;
  font-size: 14px;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<table border="1" ng-app="myExample" ng-controller="myCTRL">
  <tr>
    <td align=middle>Building</td>
    <td align=left>Level</td>
    <td align=middle>Armour</td>
    <td align=left>Destroyed</td>
    <tr>
      <td align=left width=100>Outpost:</td>
      <td>
        <select style="width: 40px" ng-model="OP" ng-options="value.armour as value.label for value in myOptionsOP"></select>
      </td>
      <td align=left width=200>Base Armour: {{OP}}</td>
      <td align=middle width=25>
        <input type="checkbox" ng-model="subTotalOP">
      </td>
      <tr>
        <td align=left width=100>Warehouse:</td>
        <td>
          <select style="width: 40px" ng-model="WH1" ng-options="value.armour as value.label for value in myOptionsWH"></select>
        </td>
        <td align=left width=200>Base Armour: {{WH1}}</td>
        <td align=middle width=25>
          <input type="checkbox" ng-model="subTotalWH1">
        </td>
        <tr>
          <td colspan="4" align=left width=300>
            <br/>
            <br/><b>Total Of Destroyed Buildings: {{subTotalOP+subTotalWH1}}</b>
          </td>
          <tr>
            <td colspan="4" align=left width=300>
              <br/><b>Total of All Buildings: {{OP+WH1}}</b>
            </td>
</table>
  • 1
    Что вы подразумеваете под "мне нужно иметь уничтоженную сумму" ?
  • 0
    Кажется, что скрипка работает нормально
Показать ещё 1 комментарий

2 ответа

4
Лучший ответ

Обновлено:

Я считаю, что это то, что вам нужно:

{{(subTotalOP === true ? OP : 0)   + (subTotalWH1 === true ? WH1 : 0)}}

На самом деле, это не очень хороший подход, вы должны сделать логику в javascript. Но в любом случае, надеюсь, что это может решить вашу проблему.

Проверено новое демо: https://jsfiddle.net/dLtecsbj/10/

  • 0
    Ах да, теперь я вижу ошибку, кажется, это правильный ответ, но вопрос трудно понять. Мой upvote
  • 0
    Я не хочу, чтобы количество зданий было разрушено, мне нужна общая сумма брони. Как вы видите, у меня есть общая броня, но я хочу отдельную сумму из тех, которые были проверены
Показать ещё 2 комментария
0

Вы можете использовать ng-init для инициализации значения по умолчанию.

Проблема заключается в том, когда вы выполняете subTotalOP+subTotalWH1, если subTotalWH1 не undefined, он возвращает значение первого операнда (true/false). его инициализация также решит его, но вы должны инициализировать оба.

<input type="checkbox" ng-init="subTotalOP=false" ng-model="subTotalOP">

Обновлен JSFiddle

Ещё вопросы

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