Visual Studio Code 中的 HTML KnockoutJS 智能感知

12

我希望使用Visual Studio Code启用基于绑定的HTML KnockoutJS智能感知功能。由于我使用TypeScript(TS)并在代码中绑定模型,存在一些问题:

ko.applyBindings(myViewModel);

所有的 TS 文件都会生成并渲染到 app.js 中。

我想要实现类似于这里找到的功能。 https://johnpapa.net/knockout-intellisense-in-visual-studio-2012/

example intellisense functionality

NB:我正在使用 KnockoutJS 的调试版本。

<script src="libraries/knockout-3.4.1.debug.js" type="text/javascript"></script>

你找到解决方案了吗? - Can PERK
@canperk 还没有,抱歉。 - wonea
@CanPERK / wonea 有任何消息吗? - vfle
1
@vfle,我已经开始了一个悬赏,希望这能有所帮助。 - wonea
1个回答

1
编辑

在回答写完后,我注意到一个问题,你正确地应用了绑定,但在函数名前面缺少对象名称,在这里有什么区别:

例如,

添加绑定:

ko.applyBindings(seViewModel, document.getElementById("Div"));

使用绑定:
<div data-bind="foreach: ko.utils.arrayFilter(seViewModel.ImplementationModels(), function(item) {return item.ModelType()==globalMessages.IN_A_DAY})">
                                                                        <label class="checkbox-inline">
                                                                            <input type="radio" group="implementationModelGroup" class="implementationModelCheck" data-bind="value: ImplementationModelId, click: seViewModel.ImplementationModelCheckBoxClick.bind($data), checked:seViewModel.ImplementationModelCheckedValue()" />
                                                                            <span class="subData text-break" data-bind="text: ImplementationModelName"></span>
                                                                        </label>
                                                                    </div>

如果我不使用视图模型名称seViewModel,自动完成功能将无法正常工作。

我不确定为什么它对你不起作用,我在VS Code中打开了一个旧项目,它已经可以工作了。它不仅为KO对象提供自动完成,还为我的视图模型和C#类中的控制器操作方法提供了自动完成。我附加了一张截图作为参考 enter image description here

我添加了我的当前项目设置和VS扩展,这可能会有所帮助。

VS CODE详细信息:

Version: 1.26.1
Commit: 493869ee8e8a846b0855873886fc79d480d342de
Date: 2018-08-16T18:38:57.434Z
Electron: 2.0.5
Chrome: 61.0.3163.100
Node.js: 8.9.3
V8: 6.1.534.41
Architecture: x64

扩展名:

enter image description here

我添加了哪些 KO 文件:
 <Content Include="Scripts\libs\knockout-3.4.0.js" />
 <Content Include="Scripts\libs\knockout.mapping-latest.js" />
 <Content Include="Scripts\libs\knockout.validation.min.js" />

这是一个ASP.NET MVC项目,使用KO进行模型属性绑定。

很有帮助的 jshint - Hammad Sajid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接