更新非依赖的observable后执行knockout.js自定义绑定回调

时间:2017-06-24 01:00:53

标签: javascript knockout.js javascript-events

我有这个奇怪的问题,如果我通过我的自定义绑定quantity上的回调updateQuantity更新我的checkbox observable,它会在我的自定义绑定上调用我的update函数。我的自定义绑定元素没有,或者不应该有任何类型的订阅,但它会再次执行。这会调用我的回调方法两次。我错过了什么吗?如果我的updateQuantity只有return true,则它不会调用update函数。此外,如果我在values.callback($element.is(':checked') || checked);的{​​{1}}方法中删除update,它也可以。就像那条线导致订阅或其他什么。

custom binding

回调方法

<input type="checkbox" data-bind="checkbox: { text: 'Hello', callback: updateQuantity.bind($data) }" />

自定义绑定

 self.quantity = ko.observable(0);

self.updateQuantity = function (checked) {
            var quantity = self.quantity();
            if (checked)
                self.quantity(quantity + 1);
            else if ((quantity - 1) >= 0) {
                self.quantity(quantity - 1);
            }
            return false;
        };

1 个答案:

答案 0 :(得分:0)

我在独立的回调方法中使用了.peek()并且它有效。仍然不确定为什么它会在定期检索时重新评估自定义绑定。

import boto3

def lambda_handler(event, context):    
    boto3.client('rds').stop_db_instance(DBInstanceIdentifier='myInstanceID')