这就是场景。我想在点击更改时更新名称。我在这里引用的数据代表真实代码中的ajax数据。希望这说清楚。
这是我的:
Java脚本
$(document).ready(function() {
var data = "bipin";
$("#ram").click(function() {
data = "hari";
});
ko.applyBindings(new ViewModel(data));
});
function ViewModel(name) {
var self = this;
self.name = name;
}
和HTML:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/2.3.0/knockout-min.js"></script>
<html>
<body>
<b>Name:</b>
<span data-bind="text:name"></span>
<button id="ram">change</button>
</body>
</html>
答案 0 :(得分:4)
你应该使用可观察的容器:
$(document).ready(function() {
var data = ko.observable("bipin");
$("#ram").click(function() {
data("hari");
});
ko.applyBindings(new ViewModel(data));
});
function ViewModel(name) {
var self = this;
self.name = name;
}
答案 1 :(得分:1)
你在做什么不是淘汰赛的方式。看看他们的learning center。
要回答你的问题,这是正确的方法:
function ViewModel () {
var self = this;
self.name = ko.observable('John');
self.changeName = function () {
self.name('Jessica');
}
}
ko.applyBindings(new ViewModel());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<h1>Name :</h1>
<input type="text" data-bind="value: name" />
<button data-bind="click: changeName">Click me</button>
&#13;