何时调用dependentObservable函数?

何时调用dependentObservable函数?

问题描述:

我有下面的示例代码:何时调用dependentObservable函数?

<!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> 

我希望那是什么,看看以提醒值弹出式由用户更改。当我运行它时,弹出窗口只会在页面初始加载时显示一次。之后我可以进行价值更新,但警报不会很长时间触发。

任何线索为什么?

dependentObservables跟踪在评估过程中访问它们的值以创建依赖关系的observables。

在你的情况,你dependentObsevable不访问任何observable。如果您在代码中访问一个或多个observable的值,则只要更新其任何依赖关系,就会触发它。