【发布时间】:2012-05-02 05:24:01
【问题描述】:
我正在使用 ko 映射插件从 JS 对象 ko.mapping.fromJS() 创建我的 observables。
对象的sn-p如下:
{ Name: "blah", Parent: { Title: "blah", Url: "/blah" } }
如果Parent.Title 发生变化,那么我页面上的所有内容都会按预期更新,但是当Parent 变为空时,我遇到了问题。使用 Parent 属性的简化标记如下所示:
<p data-bind="if: HasParent">Up: <a data-bind="text: ParentTitle"></a></p>
HasParent 看起来像这样:
self.HasParent = ko.computed(function () {
return self.Parent;
});
ParentTitle 看起来像这样:
self.ParentTitle = ko.computed(function () {
return self.HasParent() ? self.Parent.Title() : "";
});
注意:self 设置为从ko.mapping.fromJS() 返回的结果,然后通过调用ko.applyBindings(); 应用于页面
所以基本上我的问题是HasParent 函数总是返回一个真实的值。
另外,这是我的第一个 ko 项目,所以如果我能以更好的方式做任何事情,请告诉我:)
任何帮助将不胜感激。
谢谢。
【问题讨论】:
标签: knockout.js computed-observable