何时调用 dependentObservable 的函数?

发布于 2024-12-02 03:00:58 字数 1214 浏览 0 评论 0原文

我有以下示例代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
   <script type="text/javascript" src="../knockout-1.2.1.js"></script>
   <script type="text/javascript" src="../knockout.mapping.js"></script>
</head>
<body>
   <div>Nested Object Value1 <input data-bind="value: NestedObject.Value1" type="text" /></div>
   <div>Value2 <input data-bind="value: Value2" type="text" /></div>

<hr/>
<div data-bind="text: ko.toJSON(viewModel)"></div>

<script type="text/javascript">
   var initialData = {"NestedObject":{"Value1":"Dummy value"}, "Value2" : "Hello world"};

   var viewModel = ko.mapping.fromJS(initialData);

   viewModel.ParameterUpdatedDependentObservable = ko.dependentObservable(function() {
        alert("dependentObservable fired");
    }, viewModel);

   ko.applyBindings(viewModel); // Makes Knockout get to work
   </script>
</body>
</html>

我期望看到弹出窗口以提醒值被用户更改。当我运行它时,弹出窗口仅在页面最初加载时显示一次。之后我可以进行值更新,但不再触发警报。

有什么线索吗?

I have following sample code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
   <script type="text/javascript" src="../knockout-1.2.1.js"></script>
   <script type="text/javascript" src="../knockout.mapping.js"></script>
</head>
<body>
   <div>Nested Object Value1 <input data-bind="value: NestedObject.Value1" type="text" /></div>
   <div>Value2 <input data-bind="value: Value2" type="text" /></div>

<hr/>
<div data-bind="text: ko.toJSON(viewModel)"></div>

<script type="text/javascript">
   var initialData = {"NestedObject":{"Value1":"Dummy value"}, "Value2" : "Hello world"};

   var viewModel = ko.mapping.fromJS(initialData);

   viewModel.ParameterUpdatedDependentObservable = ko.dependentObservable(function() {
        alert("dependentObservable fired");
    }, viewModel);

   ko.applyBindings(viewModel); // Makes Knockout get to work
   </script>
</body>
</html>

What I expected is that to see a popup to alert value is changed by user. When I run it, the popup shows up only once when page is initially loaded. Afterwards I can make value update but alert is no long triggered.

Any clue why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

筑梦 2024-12-09 03:00:58

dependentObservables 跟踪在评估期间访问其值以创建依赖关系的可观察量。

在您的情况下,您的 dependentObsevable 不会访问任何 observable。如果您在代码中访问一个或多个可观察量的值,那么每当其任何依赖项更新时您都会看到它触发。

dependentObservables track the observables that have their values accessed during evaluation to create dependencies.

In your case, your dependentObsevable does not access any observables. If you access the value of one or more of your observables in your code, then you will see it trigger whenever any of its dependencies are updated.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文