2017-07-07 88 views

回答

0

您正在寻找的是订阅。这些将监视指定的observable,并在observable发生更改时运行。他们将新价值传递给您指定的任何功能。这是一个简短的,尽管没用的例子。

function viewModel() { 
 
    var self = this; 
 

 
    self.DisplayPage = ko.observable(""); 
 

 
    self.PageDetails = ko.observable(""); 
 

 
    self.DisplayPage.subscribe(function(newValue) { 
 
    if (newValue == "Home") { 
 
     self.PageDetails("No Place like home"); 
 
    } 
 
    if (newValue == "About") { 
 
     self.PageDetails("What about it?"); 
 
    } 
 
    if (newValue == "Contact") { 
 
     self.PageDetails("Contact who?"); 
 
    } 
 

 
    }) 
 

 
} 
 

 
ko.applyBindings(new viewModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> 
 
<select data-bind="value: DisplayPage"> 
 
    <option value="Home">Home</option> 
 
    <option value="About">About</option> 
 
    <option value="Contact">Contact</option> 
 
</select> 
 

 
<div> 
 

 
    <input data-bind="value: DisplayPage"> 
 

 
    <div data-bind="text: PageDetails"></div> 
 

 
</div>