深度可观察对象和foreach模板
Deep observables and foreach templates
我有一个这样的视图模型:
function viewModel() {
this.a = ko.observable();
}
在某些时候,我尝试这样做(其中m
是我的viewModel
):
m.a(new thing());
现在,我有一个这样的模板绑定:
<ul data-bind="template: { name: 't', foreach: a().b }"></ul>
但是它会在任何事情发生之前崩溃,因为a()
最初是undefined
或null
。所以我尝试了这个变化:
<ul data-bind="template: { name: 't', foreach: a.b }"></ul>
但这是奇怪的,因为现在它不会崩溃,但呈现一个单一的空项目,使用模板t
,这是错误的。
我在这里有点不知所措,我认为关键是我可以定义源(像这样),随着事情的变化,它只会更新的东西,但我只是得到错误(或什么都没有发生)我做错了什么?
你可以这样写你的绑定,以避免碰到未定义的属性:
<ul data-bind="template: { name: 't', foreach: a() ? a().b : [] }"></ul>
否则,你可以把这个关注点推到你的视图模型中,并创建一个dependentObservable:
viewModel.c = ko.dependentObservable(function() {
return this.a() ? this.a().b : [];
}, viewModel);
相关文章:
- 强制模板刷新ember.js
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 如何将JSON数据导入我的ejs模板
- 我的模板未被解析
- 主干模板:index.jst.eco到index.jst.ejs
- 在underscorejs模板中使用闭包
- Foreach无法在Typescript中工作
- angularjs+rails应用程序中未显示模板
- $rootScope未使用forEach进行更新
- 如何制作简单的php'在Javascript中的foreach等价物
- Knockout JS-无容器控件使用模板破坏Foreach
- 神秘的行,用于在 Webpack 中需要 html 模板:templates.keys().forEach(templa
- 带有“afterAdd”的 Foreach 绑定会导致整个模板在插入时再次绘制
- 可以'如果'可与'foreach'在'模板'绑定Knockout
- 淘汰foreach和模板中的组件
- 将模板或foreach呈现给self
- Foreach使用模板工作,但没有模板就中断
- 深度可观察对象和foreach模板
- 淘汰嵌套的foreach,模板不能按预期工作
- 我可以从Knockout Foreach模板中获得索引并传递给Html.EditorFor