在函数中使用Knockout push会返回错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在函数中使用Knockout push会返回错误相关的知识,希望对你有一定的参考价值。
在这个例子中,我使用了knock.with require.js。
在Main.roll()之外,Main.result.push按预期工作。在函数内部,它抛出一个错误:Uncaught TypeError:无法读取未定义的属性'apply'。
我仍然可以在函数中访问Main.result()。我可以为它设置值,但由于某种原因我不能使用.push。
define(['knockout', 'd20'], function(ko, d20) {
return function main() {
var Main = this;
Main.result = ko.observableArray('');
Main.result.push( d20.roll('2d8+2') ); // works
Main.roll = function() {
Main.result('');
Main.result.push( d20.roll('2d8+2') ); // no workie
}
}
});
答案
语法不正确。您正在处理数组,因此您无法将其设置为空字符串。以下是初始化数组的两种方法:
要么:
Main.result = ko.observableArray([]);
或这个 :
Main.result = ko.observableArray();
但是,如果您希望将其重置为空数组,请使用下面的代码段:
Main.result([]);
以上是关于在函数中使用Knockout push会返回错误的主要内容,如果未能解决你的问题,请参考以下文章
用于在 url 中查找部分字符串的 Knockout.js 数据绑定
Google Cloud - Pub Sub Push Subscription 调用云函数重试