2014-09-08 6 views
0

В Угловом у меня эта простая модель:Связывания входного диапазона для конкретной ячейки в угловой таблице

$scope.rdata = [ 
    {1: 7, 2: 23,3: 9, 4: 13,5: 32}, 
    {1: 23, 2: 8,3: 67, 4: 11,5: 6}, 
    {1: 35, 2: 12,3: 24, 4: 17,5: 24}, 
    ]; 

я сделать это в HTML, используя нг-повтор:

<table> 
    <thead> 
     <p>Example of xy data rendered</p> 
    </thead> 
    <tbody> 
     <tr ng-repeat="row in rdata"> 
      <td ng-repeat="c in col"> 
      <div>{{row[c]}}</div> 
      </td> 
      <td> 
      <input type="range" id="example" min="0" max="1" step="0.01"> 
      </td> 
      <td><div> 
      Value compiled: {result of input range value * value in row[c]} 
      </div></td> 
     </tr> 
    </tbody> 
</table> 

В основном я хотел бы связать значение, отображаемое в последнем div моего последнего (где записано Value compiled), как произведение значения входного диапазона в той же строке и значение в последнем столбце той же строки. Если возможно, я хотел бы понять, есть ли способ ссылаться на любое значение, находящееся в столбце x и строке y, и иметь возможность взаимодействовать с ним, помещать его в формулу и т. Д. ... без создания другой угловой модели.

Сообщите мне, если это достаточно ясно, чего я пытаюсь достичь.

Edit: мои данные немного больше, как это:

$scope.financials2 = [ { '2011': 98, '2012': 97, '2013': 100, name: 'Sales' }, 
    { '2011': -5, '2012': -6, '2013': -7, name: 'Costs of Goods Sold' }, 
    { '2011': 93, '2012': 91, '2013': 93, name: 'Gross Profit' }, 
    { '2011': -37, '2012': -36, '2013': -35, name: 'Operating Expenses' }, 
    { '2011': 54, '2012': 55, '2013': 58, name: 'Operating income' } ] 

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

Так промежуточный этап будет, как:

Concept   2011 2012 2013 
Sales    98 97 100 
Cost of Goods Sold -5 -6 -7 
Gross Profit   93 91 93 

идея, я бы хотел бы добавить две колонки,

  • один с ползунком (входной диапазон) для каждой строки, которые показывают рост цены, так что в основном диапазон входного перехода от -0.05 до +0,05
  • еще один столбец, показывающий 2014 ecasts: так продаж 2014 = 2013 продаж * (1+ значение слайдера), валовая прибыль 2014 = Валовая прибыль 2013 * (1+ значение Slider)

Таким образом, мы имеем 2 дополнительные столбцы, с первой, содержащей ползунки каждая строка и вторая колонка, показывающая результат столбцов 2013 года со значениями ползунка. Надеюсь, теперь это яснее.

ответ

0

Есть две части, которые, кажется, вы пытаетесь добраться сюда. Во-первых, как вы получаете значение в поле ввода, а во втором - как получить строку [c].

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

Для вашего объекта лучше всего определять имена для каждого значения, а не только {1:1, 2:3, 3: 4}, иначе просто используйте массив. В приведенном примере я назвал ваш последний элемент в объекте last в этом примере jsfiddle.

http://jsfiddle.net/reszjcu2/ - предупреждение, форматирование довольно дерьмо.

Обратите внимание: я должен был предоставить ключ и значение для объекта строки, поскольку ng-repeat работает только с массивами, а не с объектами. Еще одна причина использовать массив, если на вашем объекте не будут иметь именованные элементы.

+0

Спасибо, ты уверен в своей ссылке jsfiddle? он выглядит довольно пустым, просто показывая Hello superhero !, Я отредактирую свой вопрос, чтобы он был более точным. – Bondifrench

+0

Извините, я видела что-то elses скрипку и, видимо, не обновлялась.http://jsfiddle.net/ak6k1gh7/2/ попробуйте этот. – pedalpete

+0

Я думаю, что принцип существует, однако, когда я изменяю html на Value compiled: {{(1 + row.range || 0.5) * row.last}}, он, кажется, дает мне неправильные значения, знаете ли вы, почему? Это нормально, если вы этого не сделаете, тогда я отправлю еще один вопрос в Stackoverflow. Thx за вашу помощь. – Bondifrench