Javascript 淘汰视图模型
在knockout中,我可以将数据绑定到不是视图模型的对象吗?我试图使整个页面都可以使用公共设置或与主题相关的值。我不想将它们添加到每个视图模型中Javascript 淘汰视图模型,javascript,knockout.js,Javascript,Knockout.js,在knockout中,我可以将数据绑定到不是视图模型的对象吗?我试图使整个页面都可以使用公共设置或与主题相关的值。我不想将它们添加到每个视图模型中 i、 e.data bind=“MyGlobalSingleton.Prop”是的,您可以,但是您绑定到的属性需要是对象中可观察到的敲除。否则,您将无法使用双向绑定的好处。是的,您可以,但是您绑定到的属性需要是对象中可观察到的敲除。否则,您将无法使用双向绑定的好处。Knockout的绑定被包装在与任何其他javascript一样执行的函数中。由于绑定
i、 e.data bind=“MyGlobalSingleton.Prop”是的,您可以,但是您绑定到的属性需要是对象中可观察到的敲除。否则,您将无法使用双向绑定的好处。是的,您可以,但是您绑定到的属性需要是对象中可观察到的敲除。否则,您将无法使用双向绑定的好处。Knockout的绑定被包装在与任何其他javascript一样执行的函数中。由于绑定也使用标记包装在
中,因此将在以下位置搜索绑定中使用的任何属性:
首先,在当前上下文中(通常是“视图模型”)
然后,在Knockout自己的bindingContext
对象中($data
指(1),其他方便的$
-前缀属性,如$parent
,在这里可用)
最后,在全局名称空间中。大多数浏览器中:window
这为您提供了许多存储内容的选项,但您需要知道在重复使用属性名时会发生什么。一些例子:
window.myProp=“我在窗口”;
//我们也可以在这里使用'var notUsedInVM',因为
//这是在窗口范围内执行的
window.notUsedInVM=“我只在窗口”;
var SubViewModel=函数(){
this.myProp=“我在子视图模型中”;
};
var RootViewModel=函数(){
this.myProp=“我在根视图模型中”;
this.subVM=新的子视图模型();
};
applyBindings(新的RootViewModel())代码>
div{
边框:1px纯黑;
填充:.5rem;
}
窗口属性:
我的道具:
子属性:
窗口属性:
唯一窗口属性:
我的道具:
Root prop:
Knockout的绑定被包装在与其他javascript一样执行的函数中。由于绑定也使用
标记包装在中,因此将在以下位置搜索绑定中使用的任何属性:
首先,在当前上下文中(通常是“视图模型”)
然后,在Knockout自己的bindingContext
对象中($data
指(1),其他方便的$
-前缀属性,如$parent
,在这里可用)
最后,在全局名称空间中。大多数浏览器中:window
这为您提供了许多存储内容的选项,但您需要知道在重复使用属性名时会发生什么。一些例子:
window.myProp=“我在窗口”;
//我们也可以在这里使用'var notUsedInVM',因为
//这是在窗口范围内执行的
window.notUsedInVM=“我只在窗口”;
var SubViewModel=函数(){
this.myProp=“我在子视图模型中”;
};
var RootViewModel=函数(){
this.myProp=“我在根视图模型中”;
this.subVM=新的子视图模型();
};
applyBindings(新的RootViewModel())代码>
div{
边框:1px纯黑;
填充:.5rem;
}
窗口属性:
我的道具:
子属性:
窗口属性:
唯一窗口属性:
我的道具:
Root prop:
谢谢你我猜到了谢谢你我猜到了