Knockout .js并在单击时更改值
Knockout .js and changing values on click
简化代码如下。我有另一个构建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>
. 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"));
我很确定我的映射在.html b/c上是正确的,原始值将呈现为超级失败,如果我改变映射到"successOrFailureSw"的文本框中的值,我在span标签中得到更新的值,但我无法在登录按钮的点击时间得到效果的改变。
我知道我错过了一些这么简单的,所以我提前道歉。
谢谢!
布赖恩你给可观察对象赋值的方式不对。每个可观察对象都是一个函数,所以你应该使用()
来调用它,修改你的changeValue函数如下:
self.changeValue = function(){
console.log("changed!");
self.successOrFailureSw("new value!");
}
您应该这样设置值:
self.successOrFailureSw('new value!');
successOrFailureSw
不是字符串。这就是为什么您需要以与前面代码相同的方式设置它的原因。
试试这个:自我。successOrFailureSw("新价值!")
相关文章:
- 如何删除父表行时;删除“;在React JS中单击按钮
- 单击以将相机放置在Three js中的对象附近
- js循环遍历单击的元素子节点
- 如何在单击按钮时使用instantsearch.js启动搜索
- d3.js条形图未根据单击事件进行更新
- Hammer.js滑动不会'单击按钮后才能工作
- 为什么当我单击X时,所有项目都会从我的Backbone.js视图中删除
- C3.js通过单击按钮显示工具提示
- 单击'Backbone.js视图'不要工作
- js - 单击时交换图像
- 角度 js - 如何用鼠标单击,然后在 ng-grid 上按 Enter 键
- JS照片库.使大图像显示和缩略图可单击
- Javascript 单击html字段值而不编辑.js文件
- 在单击浏览器选项卡上调用 js 函数
- 在单击JS上更改音频源
- 使用 Ctrl+单击JS地图进行选择
- 循环填充文本框并单击 js 中的按钮
- 防止页面跳转的选项卡单击JS
- 通过单击JS驱动按钮创建一个HTML页面
- 在自定义metabox中单击JS按钮重新加载Wordpress帖子编辑页面