问题标签 [knockout-es5-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 淘汰赛绑定处理程序传递对象数组
是否可以为绑定处理程序传递带有方括号的数组值?,即:
它适用于一个对象:
类值是不可观察的,只是 javascript 对象。
它抛出Message: Unexpected token )
错误。
或者我需要一些其他语法?我可以用对象包裹它,但不喜欢。
我为这个问题拍摄了项目快照,可在此处获得:http: //balin.maslosoft.com/array-validators/dev/validator.php
打开控制台,对象验证器将显示配置,而数组将失败。
这是最小的例子:http: //jsfiddle.net/piotr/fu8d0hm3/
knockout.js - 使用 knockoutjs es5 从数组中删除项目
我正在尝试将 knockout.js 与 ES5 插件一起使用,但我无法从数组中删除来工作。
它似乎有点工作,你可以删除,但数组中总是剩下一个项目,但不是真的不知何故。我完全困惑为什么这不像你想象的那样工作。
我究竟做错了什么?
(我有一个使用 durandal 小部件的更复杂的场景,但我能够将其归结为这个,所以我认为 es5 插件是罪魁祸首)
这是我的标记:
和脚本:
现实世界中唯一的其他区别是我从 API 调用中获取数据,但行为是相同的。
javascript - Require JS with Knockout components 在不正确的路径中寻找 js 文件
我试图通过构建淘汰组件来了解 require js 的工作原理。我已经构建了 2 个单独的淘汰组件进行测试。我的目录结构如下:
我在 app.js 文件中配置了 require.js 如下
这是我的 startup.js 文件
});
出于测试目的,我的 like-widget.js 和 sign-in.js 文件几乎相同
});
});
这就是我在我的 html 页面中引用 require.js 的方式
问题是我的like-widget 组件工作正常,但是一旦我尝试使用我的登录组件,就会出现错误
未捕获的错误:“knockout”的脚本错误,需要:kox http://requirejs.org/docs/errors.html#scripterror
从错误看来,requirejs 试图从不正确的位置加载敲除,我的 knockout.js 不在组件目录中,而是在脚本目录中。我不明白的是它是如何正确加载like-widget 组件的?
我是requirejs的新手,所以我假设我犯了一些幼稚的错误,你能指出来吗?
knockout.js - 无法写入在 knockoutjs 组件内作为参数接收的 observable
当我们将 KO 组件作为参数传递时,它会接收到 observable 的引用。当组件接收它作为参考时,您可以写入此可观察对象,它将反映在您的视图模型上;但是,当您使用 ko-es5 插件(超级棒)时,您的 KO 组件而不是接收也对您的 observable 的引用会接收某种 computeObservable,我们无法写入它。这是意外的行为吗?
仅使用淘汰赛尝试
http://jsfiddle.net/kapuca/k0fw8w18/
尝试使用敲除 + ko-es5 插件
knockout.js - 如何获得淘汰赛以更新定义的属性?
考虑这个打字稿类(但我认为打字稿与问题无关,除了掩盖底层defineProperty
调用):
请注意,我正在使用映射插件。
该link
酒店使用电流TeamId
为该团队建立合适的链接。我的问题是:我如何告诉淘汰赛当TeamId
属性发生变化时,属性也会发生变化link
?我认为subscribe
回调会做到这一点,但getObservable
返回 null。我猜这是因为它不适用于使用defineProperty
. 但现在我被卡住了,因为我想使用这种语法但不能让它工作。
typescript - 淘汰 es5 分型
我正在尝试更新我的敲除打字,因为最新版本的打字稿正在检测旧打字稿的问题。
问题在于试图让 knockout 和 knockout.es5 类型一起工作。
我正在使用 VS2017 和 tsconfig 文件。
我像这样安装淘汰赛类型:
然后我像这样安装敲除-es5类型:
在我安装了淘汰赛 es5 类型后,它们会出现编译错误,因为没有这样的类型KnockoutObservable<T>
。
所以我将这个添加到了敲除 es5 类型的顶部:
并更改KnockoutObservable<any>
为ko.Observable<any>
现在可以编译。
所以..现在我想使用这些类型来创建一个淘汰视图模型,所以在一个新的打字稿文件中:
这会导致编译错误,因为track
在typeof ko
这是因为 ko 是从knockout
模块中导入的,该模块是从类型中导出的knockout
,但是track
它是一种方法,应该由类型添加knockout-es5
,但不是。如何进一步修改 knockout-es5 分型文件以使其正常工作?
更新:我尝试将其添加到 knockout.es5/index.d.ts 文件的底部:
在我的打字稿文件中,我正在尝试:
但是 import 语句不会编译:它说cannot find module knockout-es5
.
我也试过这个:
这似乎可行,但是我必须更改我的代码才能做到这一点,这对我来说似乎是错误的(注意附加的.ko
:
而且一旦我这样做了,我就不能再解析ko
像ko.Observable
.