gpt4 book ai didi

javascript - 使可观察变量为空

转载 作者:行者123 更新时间:2023-11-30 11:58:20 25 4
gpt4 key购买 nike

我有一个以下格式的可观​​察变量:

var obvar = ko.observable("");

obvar({view:'dummy.html',model:'dummymodel'});

在我的一项检查中,如果变量“obvar”包含,我想清空内容

{view:'dummy.html',model:'dummymodel'}.

我尝试了 obvar(""); 但它没有发生。obvar =""; 会将其转换为普通字符串。如何清空内容?

最佳答案

您的第一个代码片段:

var obvar = ko.observable("");

obvar({view:'dummy.html',model:'dummymodel'});

有一个特殊但重要的功能。 obvar observable 首先包含一个 string,在第二行之后它包含一个 Object

您提到的要求是(强调我的):

...I want to empty the contents, if variable obvar contains {view:'dummy.html',model:'dummymodel'}

我不清楚您所说的“清空”内容是什么意思,也许您也不清楚(因为您已经尝试过 obvar("");,这在某种意义上是“清空”内容,但没有达到预期的结果)。

无论如何,这里有两种方法可以在可运行代码段中执行此操作,这样您就可以看到它正在运行的证据:

function ViewModel() {
var self = this;

var obvar = ko.observable("");
obvar({view:'dummy.html',model:'dummymodel'});

self.obvar = obvar; // Expose it so the view can demo the workings.

function canEmptyContents() {
// empty the contents if variable "obvar" contains {view:'dummy.html',model:'dummymodel'}
return obvar().view === 'dummy.html' && obvar().model === 'dummymodel';
}

self.option1 = function() {
if (canEmptyContents()) {
obvar("");
}
};

self.option2 = function() {
if (canEmptyContents()) {
obvar({ dummy: "", model: "" });
}
};
}

ko.applyBindings(new ViewModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/2.3.0/knockout-min.js"></script>

<button data-bind="click: option1">Option 1: empty with string</button>
<button data-bind="click: option2">Option 2: empty with empty object</button>
<hr>
Debug info: <pre data-bind="text: ko.toJSON($root, null, 2)"></pre>

关于javascript - 使可观察变量为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37315173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com