Single page application 使用带有durandal模板的自定义javascript脚本文件
我使用Durandal模板从事Visual Studio 2012 MVC4项目。在此模板中,shell.js页面为我们提供了一个非常简单的菜单解决方案,其中每个元素都位于顶部。就我个人而言,我需要一些不同的东西。为此,我有一个名为dropdown.js的javascript文件,它允许我显示/隐藏子菜单。它在标准项目中运行得非常好,但我无法使用durandal模板 以下是我尝试的: 我在Index.chtml中添加了对dropdown.js脚本的引用:Single page application 使用带有durandal模板的自定义javascript脚本文件,single-page-application,durandal,Single Page Application,Durandal,我使用Durandal模板从事Visual Studio 2012 MVC4项目。在此模板中,shell.js页面为我们提供了一个非常简单的菜单解决方案,其中每个元素都位于顶部。就我个人而言,我需要一些不同的东西。为此,我有一个名为dropdown.js的javascript文件,它允许我显示/隐藏子菜单。它在标准项目中运行得非常好,但我无法使用durandal模板 以下是我尝试的: 我在Index.chtml中添加了对dropdown.js脚本的引用: <script src="~/Sc
<script src="~/Scripts/dropdown.js"></script>
如您所见,每个用“dropdown”类修饰的元素都应该被捕获。这对durandal不起作用。我放置了一些警告框来检查它。显示警报“XX”,但从未显示警报“YY”
我找了好几个小时都没找到
有什么想法吗?我认为问题在于,当在呈现菜单之前执行dropdown.js函数时,jquery选择器不会捕获任何列表项 我认为您最好的选择是制作一个淘汰绑定,以转换下拉列表中的列表项 绑定看起来像:
ko.bindingHandlers.dropdown= {
init: function (element, valueAccessor, allBindingsAccessor) {
$(element).Dropdown();
},
update: function (element, valueAccessor) {
}
};
并且认为:
<li class="dropdown" data-bind="dropdown : {}">
...
...
</li>
我认为问题在于,当在呈现菜单之前执行dropdown.js函数时,jquery选择器不会捕获任何列表项 我认为您最好的选择是制作一个淘汰绑定,以转换下拉列表中的列表项 绑定看起来像:
ko.bindingHandlers.dropdown= {
init: function (element, valueAccessor, allBindingsAccessor) {
$(element).Dropdown();
},
update: function (element, valueAccessor) {
}
};
并且认为:
<li class="dropdown" data-bind="dropdown : {}">
...
...
</li>
查看您可以访问的生命周期事件
viewAttached可能会有所帮助,因为您可以在视图和dom就绪时点击进入。查看您可以点击进入的生命周期事件
viewAttached可能会有所帮助,因为当视图和dom准备就绪时,您可以点击进入。我也使用viewAttached来完成任务,但根据在的讨论,在开始之前,应该首先考虑自定义绑定或Durandal小部件。这取决于。。。如果您只需要等待DOM准备就绪,那么viewAttached就可以了。如果您需要更多,绑定是理想的。这与我理解Rob建议的方式不完全一样,但我必须承认,文档中并没有100%清楚地说明根据Durandal的理念何时使用哪个钩子来工作。我要求Rob将用例放在文档中。。。我认为这会澄清问题。我同意绑定处理程序更干净,但是如果您对jQuery代码在viewmodel中的使用感到满意,那么viewAttached就可以了。我也更喜欢处理程序,因为它的价值。我也使用viewAttached来完成事情,但根据在上的讨论,在走这条路线之前,应该首先考虑自定义绑定或Durandal小部件。这取决于。。。如果您只需要等待DOM准备就绪,那么viewAttached就可以了。如果您需要更多,绑定是理想的。这与我理解Rob建议的方式不完全一样,但我必须承认,文档中并没有100%清楚地说明根据Durandal的理念何时使用哪个钩子来工作。我要求Rob将用例放在文档中。。。我认为这会澄清问题。我同意绑定处理程序更干净,但是如果您对jQuery代码在viewmodel中的使用感到满意,那么viewAttached就可以了。我也更喜欢经理人,因为他们的价值。