在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")
}
}
}
}
答案 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());