gpt4 book ai didi

javascript - 为什么我的 applyBindings 不起作用?昏死

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

您好,我只是想创建输入和 iframe,当我粘贴 YouTube 链接时,iframe 应该随着新的 src 而改变。到目前为止我已经这样做了

<div class="heading">id <input data-bind="text: youtubeLink"/></div>
<iframe id="player" type="text/html" width="444" height="250" frameborder="0" data-bind="attr: { src: linkEmbed }"></iframe>

在脚本中:

function MyViewModel() {
this.youtubeLink = ko.observable('https://www.youtube.com/watch?v=4UNkmlCKw9M');
this.linkEmbed = ko.pureComputed({
read: function () {
var extract = this.youtubeLink().replace("/watch?v=", "/embed/");
console.log(extract)
return extract;
},
write: function (value) {
this.youtubeLink();
},
owner: this
});
}
ko.applyBindings(MyViewModel());

这完全符合我的要求,但如果我在输入中粘贴另一个链接,视频不会改变。

我正在使用来自 knockout 文档的这个:http://knockoutjs.com/documentation/computed-writable.html

最佳答案

你有几个问题:

  1. 您没有在模型上调用 new,而是将其编写为构造函数
  2. 您使用 text 绑定(bind)而不是 value 绑定(bind)输入
  3. 你的计算器的写没有赋值,但你也不需要它

一旦您纠正了这些问题,它就会起作用。

function MyViewModel() {
var model = {};
model.youtubeLink = ko.observable('https://www.youtube.com/watch?v=4UNkmlCKw9M');
model.linkEmbed = ko.pureComputed(function () {
var result = model.youtubeLink().replace("/watch?v=", "/embed/")
return result;
});
return model;
}
ko.applyBindings(MyViewModel());

http://jsfiddle.net/ueoob7ne/2/

关于javascript - 为什么我的 applyBindings 不起作用?昏死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30605336/

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