如何在Polymer模型中更新隐藏的$ =属性?

时间:2015-09-11 20:53:02

标签: polymer polymer-1.0

this jsbin中,您应该能够看到' 4'当您点击“显示更多”字样时呈现按钮。控制台将更改记录到my-element的模型,但DOM不会更新。我做错了什么?

public class AnimatedView: UIView {

    public var widthConstraint: NSLayoutConstraint!

    public required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    public func animate()
    {
        widthConstraint?.constant = 20
        UIView.animateWithDuration(2, animations: {
            self.superview?.layoutIfNeeded()
            }) { (completed: Bool) in
                if completed {
                    print("done")
                }
        }
    }
}

2 个答案:

答案 0 :(得分:5)

不是每次都创建一个新数组,而是可以通过在计算绑定中使用通配符*来观察数组更改(从here读取)。

所以你的绑定变成了 -

<div hidden$="{{_isItemHidden(item, shownItems.*)}}">{{item}}</div>

现在你的计算功能应该是 -

_isItemHidden: function(item, e) {
    return !e.base.some(function (i) { return i == item });
}

查看更新的jsbin here

答案 1 :(得分:0)

解决方案是simple,要让系统得到通知,并且要调用_isItemHidden函数,您必须更新shownItems数组的引用。

this.shownItems.push(4);

this.set('shownItems', this.shownItems.slice());