AngularJS - 从输入

时间:2016-03-23 15:07:53

标签: angularjs angularjs-scope angularjs-ng-repeat angularjs-ng-model

我是angularJS的新手,我在使用某些计算从输入更新图表数据时遇到了一些问题。我有一个主html文件和一个app.js文件与我的控制器。

我期待:

  • 让用户输入数字值
  • 有某种类型的计算(例如输入值* 5)
  • 然后更新数据数组中的索引

示例:查看下面提供的代码段。我想让用户输入一个数字值,进行某种类型的计算,并且总替换ser.data [4] - 类似于(userInput * 5)。因此,如果用户输入5,ser.data [4]将为25,如果输入4,则ser.data [4]将为20,等等。

在一些计算之后,我能够通过向特定索引添加一个函数来返回一个值 - 该函数仅在首次加载页面时才有效。由于输入ng模型与索引相关联,因此当输入发生变化时,它只会覆盖函数并且不再使用它。

很抱歉,如果我的解释工作很差 - 让我知道,我会尽力澄清。

提前感谢您的帮助!

- MOE

(在我的html文件中输入)

     <div class="row-fluid" ng-repeat="ser in chartSeries" >
          <div class="span12 well">
              <div class="row-fluid">Title <input type="number" ng-model="ser.data[4]" ></div>       
           </div>
      </div>

(来自我的app.js文件的代码)

'use strict';

 var myapp = angular.module('myapp', ["highcharts-ng"]);
  
myapp.controller('myctrl', function ($scope) {

  $scope.chartSeries = [
    {"name": "Compounded Annually", data: [1, 2, 3, 4, 5]},
	
  
  ];

  

问题更新

感谢您的帮助!对我来说还是有点模糊。我会尝试通过添加一个模型场景来更好地解释(我理解,如果我的初始问题没有意义。)我正在构建一个储蓄计算,但我嘲笑了一些更苗条的东西。

pic中的图表将从chartSeries数据中提取数据。假设用户输入10作为每日租金,30作为租赁日数,我会尝试更新“租车”数据然后反映300(或每日租金乘以租赁天数。)所以例如,让我们说“租车”数据从app.js中我的chartSeries数据数组中的第一个索引中提取数据。

这有帮助吗?感谢你的宝贵时间! enter image description here

1 个答案:

答案 0 :(得分:0)

您需要观看输入模型:

$scope.$watch('chartSeries[0].data', function (newVal, oldVal) {
  // You can do a calculation with the new value.
  console.log(newVal[4]); // 5
}, true);

true意味着深入观察。如果chartSeries数组有多个值,您还可以观看整个系列:$scope.$watch('chartSeries', fn);

我希望你明白这一点。如果这个答案方向错误,请更新你的问题,因为我不完全明白你想做什么。