use*_*071 1 javascript knockout.js
以下简化代码.我有另外的构建w/ajax调用,我知道正在工作b/c我可以看到它们命中服务器.但我无法获得将更改呈现回UI的内容.
html的:
<div id="LoginPage" data-title="LoginPage" data-role="page" data-theme="a">
<div data-role="content" class="minimalPaddingContent">
<div class="divDivider"></div>
<h3>REACH Energy Audit Login</h3>
<input type="text" placeholder="User Name" id="userName" data-bind="value: successOrFailureSw"/>
<input type="password" placeholder="Password" id="password"/>
<a href="#" data-role="button" id="LoginSubmit" style="width:150px;" class="centeredButton" data-bind="click: changeValue">Sign In</a>
<span data-bind="text: successOrFailureSw"></span>
</div>
Run Code Online (Sandbox Code Playgroud)
.js文件:
var LoginViewModel = function (commonName, successOrFailureSw) {
var self = this;
self.commonName = ko.observable(commonName);
self.successOrFailureSw = ko.observable(successOrFailureSw);
self.changeValue = function(){
console.log("changed!");
self.successOrFailureSw = "new value!";
}
};
ko.applyBindings(new LoginViewModel("", "super fail"));
Run Code Online (Sandbox Code Playgroud)
我很确定我的映射在.html b/c上是正确的,原始值将呈现为超级失败,如果我更改了映射到"successOrFailureSw"的文本框中的值,我会在span标记中获得更新的值,但我无法在点击时更改登录按钮的效果.
我知道我错过了这么简单的事情,所以我提前道歉.
谢谢!
布赖恩
您以错误的方式为observable赋值.每个可观察对象都是一个函数,所以你应该使用()修改你的changeValue函数来调用它,如下所示:
self.changeValue = function(){
console.log("changed!");
self.successOrFailureSw("new value!");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3717 次 |
| 最近记录: |