我有一个包含多个标签的from tastypie import resources, fields
class ResponseResource(resources.ModelResource):
class Meta:
resource_name = 'response'
queryset = Responses.objects.all()
...
class QuestionResource(resources.ModelResource):
responses = fields.ToManyField(ResponseResource, 'responses', full=True)
class Meta:
resource_name='question'
queryset = Questions.objects.all()
...
文件。为了在标签之间切换,我没有依赖Lightswitch的向下钻取菜单,而是使用Home.lsml
在页面顶部添加了一个固定菜单(JQuery工具栏)。通过使用此工具栏,我能够在default.htm
中驻留的选项卡之间成功导航。
我的问题是,当我使用查看/浏览相关的Home.lsml
文件时,我显然没有对.lsml
进行保留,因此显然无法访问其他标签它们位于home.lsml
文件中。在这种情况下,我收到警告
0x80004005 - JavaScript运行时错误:找不到包含该选项卡的选项卡 名称' MainTab2'在屏幕上' BrowseTab1'。
简而言之,如何打开当前DOM中不可用的标签。
我正在使用Visual Studio 2015社区版。
答案 0 :(得分:1)
扩展my earlier example您应该能够使用以下类型的方法:
$("#tabOne").bind("click", function () {
msls.application.navigateHome().then(function () {
var screen = new msls.Screen();
screen.showTab("TabOne");
});
});
单击工具栏按钮时,此方法使用LightSwitch navigateHome方法导航到HTML客户端的主屏幕。
或者,如果目标屏幕未被指定为主屏幕,您可以使用showScreen方法并指定目标屏幕的名称,如下所示:
$("#tabOne").bind("click", function () {
msls.application.showScreen("Home").then(function () {
var screen = new msls.Screen();
screen.showTab("TabOne");
});
});
这两种方法(navigateHome和showScreen)返回WinJS.Promise,当导航到目标屏幕的操作完成时,它会完成,从而允许showTab方法执行一次屏幕可用。
如果您有兴趣阅读有关承诺的更多信息(在LightSwitch HTML客户端的上下文中),以下SO帖子包含一些有用的详细信息和链接: