【发布时间】:2014-03-12 13:54:48
【问题描述】:
我正在尝试使用 AngularJS 重写 JS/jQuery SPA。 SPA 是一个使用惊人的Handsontable 的项目编辑网格。我很高兴看到有一个 AngularJS version 在工作中,并且在大多数情况下,它的工作方式与预期一样。
但是,我很难弄清楚如何在 AngularJS 中使用 jQuery 做一些事情。网格(除其他外)有 3 列,其中一列依赖于另外两列。三列是成本、售价和利润(即 (1 - (成本/价格)) * 100 )。我可以在控制器中进行数学运算并将边距传递给 $scope.items 变量以进行初始加载,但是当您更改成本或价格列时,它显然不会更新。这似乎是进行双向数据绑定的理想场所,但我不知道如何将边距的数据列值绑定到另外两行的值。我觉得有一种明显的方法可以做到这一点,但由于我是 AngularJS 的新手,我想我可能会把它扔给社区。p>
提前致谢!
编辑:
因此,在尝试了一些答案之后,我想稍微改进一下我的问题,以触及问题的核心。我有一个 REST API 提供一个 JSON 文档,其中包含来自在线销售点服务的项目数组。这是一个带有虚拟数据的示例:
{ '@attributes': {'count':10}, 'Item': [
{ 'customSku':'sampleItem1'
, 'description':'Sample Item, first'
, 'defaultCost':'10.00'
, 'Prices': {'ItemPrice':[
{'amount':'17.99', 'useType':'Default'}
, {'amount':'19.99', 'useType':'MSRP'}
]}
}
, { 'customSku':'sampleItem2'
, 'description':'Item, Sample, 2nd'
, 'defaultCost':'20.00'
, 'Prices': {'ItemPrice':[
{'amount':'29.99', 'useType':'Default'}
, {'amount':'39.99', 'useType':'MSRP'}
]}
}
]}
我不是在开玩笑,数据的结构是这样的,完全是这样。无论如何。
现在,我将它传递给我的控制器中的视图,如下所示:$scope.items = JSON.parse(request.responseText);。如何将函数:$scope.getMargin = function() { return (1 - (cost / price)) * 100 } 传递给视图,以便将成本和价格限定为正确的项目?我觉得我真的很接近获得它,但我还没有完全到达那里。感谢到目前为止的回答者!
编辑 2:
Plunker here,根据要求!
【问题讨论】:
-
数据看起来不错,不用担心!
-
我已添加到我的答案中
-
你有想过这个吗?
标签: jquery angularjs handsontable