javascript - Knockout.js 可以更改不在 viewModel 中的变量吗

标签 javascript html knockout.js

这是我的示例代码 HTML:

<input type="text" data-bind="value: a"/>

在 JavaScript 中我想要类似的东西。

var a = 5; 
a = ko.observable(a);

但我想保留一个号码。当我将输入更改为更改时,当我将输入更改为更改时。

最佳答案

ViewModel->Scope 是可能的,但是 Scope->ViewModel 是可能的:

 var nonObservable = 5,
     observable = ko.observable(nonObservable);

// ViewModel->Scope
observable.subscribe(function(newValue) {
    nonObservable = newValue;
});

// Scope->ViewModel
observable("new value");

// This however, will not work
nonObservable = "not in any way connected";

这样做的原因是,knockout 无法检测您将其绑定(bind)到什么名称(ko.observable 只知道它已被赋予值 5,并不是说它已被命名为 nonObservable) ... 即使它可以检测到这一点,您也可能不想默认执行此操作。

关于javascript - Knockout.js 可以更改不在 viewModel 中的变量吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21147144/

相关文章:

javascript - 在 Javascript 中,有没有一种方法可以评估可能是也可能不是函数的变量

javascript - readAsDataURL 不是一个 blob,但图像显示

javascript - 用于替换功能的换行符和反斜杠的正则表达式

jquery - 动态创建的 DOM 元素不增加 div 大小

悬停时javascript将文本更改为元素的替代文本

javascript - 如何使用 Knockout 处理分页

javascript - 节流计算属性的 Jasmine 规范

javascript - HTMl5 Canvas 科赫分形

javascript - express .js : Do background task after sending response to client

php - 基于 PHP Session 动态加载 CSS,更好的方法?