gpt4 book ai didi

knockout.js - 如何扩展 knockout observables 以从绑定(bind)中读取默认值?

转载 作者:行者123 更新时间:2023-12-03 14:02:06 25 4
gpt4 key购买 nike

我终于有时间在构建新的 MVC4 应用程序时开始学习 KnockoutJS。我试图找出从 View 中已设置的默认值初始化可观察值的最佳方法。

这是一个人为的示例,但我想将 observable 的默认值直接呈现给 View ,如下所示:

<input type="hidden" 
value="@Model.SomeValue"
data-bind="value: myObservableReference"/>

我知道默认值通常通过以下方式初始化:
model.myObservableReference = ko.obervable("SomeValue");

但是,我想找到一种方法来扩展初始化,这样:
model.myObservableReference = ko.obervable();

如果值存在,将从绑定(bind)中读取现有值。

到目前为止,我已经设法让我的 KnockoutJS 代码完全不了解 Razor 世界,我想避免以下马虎:
model.myObservableReference = ko.obervable(@Model.SomeValue);

我猜这将通过扩展器或自定义活页夹来处理,但如果有人能指出我正确的方向,我将不胜感激。

最佳答案

您可以尝试创建自己的自定义绑定(bind)处理程序来实现这一点:

ko.bindingHandlers.initializeValue = {
init: function(element, valueAccessor) {
valueAccessor()(element.getAttribute('value'));
},
update: function(element, valueAccessor) {
var value = valueAccessor();
element.setAttribute('value', ko.utils.unwrapObservable(value))
}
};

<input type="hidden" value="@Model.SomeValue"
data-bind="initializeValue:myObservableReference, value: myObservableReference"/>

关于knockout.js - 如何扩展 knockout observables 以从绑定(bind)中读取默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11596933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com