用对象替换纸张下拉菜单中所选纸张项的空值

时间:2017-05-24 21:47:25

标签: polymer paper-elements

我无法设法"1","2","3","4","-","a","2","0".... 工作的简单绑定:

如果没有设置国家/地区,我的后端将返回一个像这样的json对象:

def keys_with(all_keys, **kwargs):
    def matches(info):
        """
        Iterates over all `kwargs` outside and returns True 
        only if all the key/values within kwargs are present in info.
        """
        return all(getattr(info, x) == y for x, y in kwargs.items())

    return [info for info in all_keys if matches(info)]

使用此结构,当更改site.address.country时,Polymer似乎无法用

替换{ "address" : { "street" : null, "country" : null } } - 国家/地区的值
paper-dropdown-menu

使用null替换国家/地区的空值的正确方法是什么?

到目前为止,这是我的代码:

{ "address" : { "street" : null, "country" : { "id" : "lu" } } }

我可以但不想做一些hacky,比如我从后端获取它后更换值,àla:

{ "id" : "lu" }

1 个答案:

答案 0 :(得分:2)

尝试使用以下方法为Object类型的属性定义默认值(通过定义返回默认Object的函数):

...

Polymer({
    is : "site-form",
    properties : {
        site : {
            type : Object,
            value :  function() { return { "address" : { "country" : {id: 0} } }; }
        }
    },
...

修改 重新格式化问题后,我理解了这个问题。在你的情况下, country.id是未定义的,所以我认为你的hacky方式应该是正确绑定的最佳解决方案。