在采购订单中,我想根据价格和税金计算所有订单项的总金额。对于每个项目,有多种税。我正在使用敲除绑定。一切都有效,除了税收部分。当我添加新税或删除时,它不会更新总额。我尝试使用自定义绑定(更新),这对我来说似乎不起作用。
https://jsfiddle.net/krishnasarma/r0doakyk/
HTML:
from unittest.mock import patch, mock_open
import ftplib
def func(hostname, username, password):
ftp = ftplib.FTP(hostname, username, password)
ftp.retrbinary('RETR README', open('README', 'wb').write)
@patch('ftplib.FTP')
def test_func_happy_path(MockFTP):
mock_ftp = MockFTP.return_value # returns another `MagicMock`
with patch('__main__.open', mock_open(), create=True) as m:
func('localhost', 'fred', 's3Kr3t')
assert mock_ftp.retrbinary.called
m.assert_called_once_with('README', 'wb')
test_func_happy_path()
JS:
<table>
<tbody data-bind='foreach: Entries'>
<tr>
<td>
<input type="text" data-bind="value:Amount" />
</td>
<td>
<select multiple data-bind="ddl1: null, SelectedOptions:Taxes"/>
</td>
</tr>
</tbody>
</table>
<input type="text" data-bind="value:$root.Total()" />
答案 0 :(得分:0)
代码中有几个问题:
您不需要多选税的自定义绑定。在HTML中,尝试:
resources
然后在JavaScript中:
<select multiple data-bind="options: $root.TaxOptions, optionsText: function(item) { return item.display; }, selectedOptions: Taxes"/>
(请参阅下面的jsfiddle链接获取完整代码)
将Total设置为ko.computed observable,因为它依赖于Entries可观察数组。
self.TaxOptions = [{display: "My Tax 1", value: 1}, {display: "My Tax 2", value: 2}];
请注意,在上面的代码中,获取Taxes的值时,请使用括号(),因为它是一个可观察的数组。
这个jsFiddle应该让你走在正确的轨道上: