2012-11-15 34 views
2

我试图使用新的显示语法来减少编译的js代码的大小。这工作正常,只要我不需要任何种类的窗口事件Dart导入显示窗口结果NoSuchMethodError

当我添加窗口来显示然后,编辑器说一切都很好。当我运行应用程序,我得到:

Exception: NoSuchMethodError : method not found: 'get:window' 
Receiver: Instance of 'Toolbar' 
Arguments: [] 
Stack Trace: #0  Object._noSuchMethod (dart:core-patch:1261:3) 
#1  Object.noSuchMethod (dart:core-patch:1264:25) 
#2  Toolbar._init (...toolbar.dart:93:5) 
#3  Toolbar.Toolbar.initialize (...toolbar.dart:47:10) 
#4  main (...toolbar.dart:29:21) 

是否有任何其他方式来获得窗口实例不使用窗口变量?

回答

2

你确定使用show实际上有助于编译的JavaScript代码的大小吗?你不应该这样做。由于树形抖动和死代码消除,只有您使用的内容才会显示在编译后的输出中。

您可以使用show来严格控制导入的内容,很明显哪些内容来自哪些库。如果你不使用show来导入很多库,很难说出来自哪里的内容,这对于非常大的代码库可能是一个挑战。

如果导入两个具有使用相同名称的函数或类的不同库,也可以使用show。通过使用show,你可以指定你想要的。

+0

嗯,你是对的。那么它有什么好处呢? –

+2

如果您有两个或更多导出相同符号名称的库(比如说导出一个名为'Foo'的函数的2个库),这很好。如果你现在导入它们,并且你想选择使用哪个'Foo',唯一的方法是在导入这些库时使用'hide'或'show'或者两者都使用。 –

相关问题