这是jsFiddle
我的主要问题是使用可观察数组。我有一个联系人列表,我希望过滤器在您键入时过滤列表,但根据调试器,我从以下“通常”属性中一无所获:
self.contacts.length
甚至
contact.name
这些是可观察的数组和可观察的属性。
因此排序不起作用,因为它无法正确访问 left.name 或 right.name。但是,如果我将属性设置为“正常”且不可观察,它会起作用。
此外,实际的过滤器函数在任何地方都需要 .peek() 来让调试器返回实际值,然后在 .name.toLowerCase() 上继续失败。
似乎当我定义一个可观察对象时,我失去了它所谓的包装的所有行为。这是正常的还是我在我的环境中遇到了可怕的错误?
附言
SO says: "links to jsFiddle must be accompanied by code"
我说 SO 应该在开始要求这类事情之前更好地处理 js/html/css 问题。