2014-03-14 125 views
1

這個問題分兩部分。首先可以通過Public Image Limited來概括,「這是你想要什麼/這就是你。」Dart App組織子模塊

我會繼續的問題簡單通過指向教程:

決定「我會像對待不同的元素作爲項目資產(這麼說)。所以我做了一個子文件夾:名爲:組件,它位於下面的$ /網絡/文件夾,每個:

事情是這樣的:

enchilada/ 
    : 
    web/ 
    index.html 
    main.dart 
    style.css 
    components/ 
     tut_stopwatch.html 
     tut_stopwatch.dart 

當我這樣做:Dart Editor成爲非常困惑。所以,首先我需要指定「我想要什麼」,然後描述,「我得到什麼」 [有]

我想

  • 飛鏢讓我把子模塊在從屬文件夾中。
  • 在這種情況下,像「tut_stopwatch」,自定義元素與適當的調整路徑變化(我做了)。
  • 理想情況下,我更喜歡Dart是否可以在多個層次上集成下屬模塊。
  • 對於幾個嵌套的子組件,您可能會考慮使用'面板'的'容器'之類的自定義UI元素。

我得到

  • 編譯錯誤的轉換。這些錯誤循環:他們「解決」,然後「重新出現」。
  • 我關閉了Dart Editor [1.2.0-release],Dart SDK [1.2.0]並重新啓動 - 問題依然存在。
  • 聚合物在 '錯誤' 中心。:
Target of URI does not exist: 'package:../polymer/polymer.dart' 
Annotation can be only constant variable or constant constructor invocation 
Classes can only extend other classes 
Annotation can be only constant variable or constant constructor invocation 
  • 我覺得沒有找到 '聚合物' 是一種症狀。飛鏢編輯循環:找到< - > not_find

這種現象的原因似乎是我不必移動的兩個文件:

  1. tute_stopwatch.html和
  2. tute_stopwatch.dart。 ..

進入[子] 組件/如圖文件夾(ABO ve)。

  • 組件/ tute_stopwatch .dart

代碼如下(達特構建錯誤爲註釋)::

import 'package:polymer/polymer.dart'; 

@CustomTag('tute-stopwatch')     // <-- Target of URI does not exist: 'package:polymer/polymer.dart' 
class TuteStopwatch extends PolymerElement { // <-- Annotation can be only constant variable or constant constructor invocation 
    @observable String counter='00:00';   // <-- Classes can only extend other classes 
               //  Undefined class 'PolymerElement' 
    TuteStopwatch.created() : super.created(); 

    : 
} // TutStopwatch class 

一項所述的誤差從該文件中的導入爲聚合物莖需要指出的是,Dart編輯器會在每個子文件夾中創建一個Windows Junction link程序包/文件夾。這將是Linux或Mac上的symlink。所以包文件路徑應該正常工作。

我正在尋找一種策略來獲得我想要的?要在Dart和Dart編輯器中開發不同模塊的子文件夾或'功能'?在此先感謝.../W


v02 ... Added code for import polymer error. 
v01 ... Original query. 
+0

支持web子文件夾中的聚合物元素。你不需要太多的策略。也許你可以添加更多的代碼(你的導入語句的樣子)。 –

+0

嗨。感謝Gunter,這是一個很好的線索。看起來問題涉及Dart Editor如何鏈接到Windows上的Packages /文件夾。我將按照建議對這個問題進行編輯。 – will

+0

我認爲你只是在某處出現語法錯誤。這些錯誤消息在這個位置根本沒有意義,我敢肯定他們與你的項目結構無關。構造函數和關閉大括號之間的超級冒號是從發佈前最小化您的示例我猜? –

回答

0

我已經解決了,我相信這個問題。我希望那些能夠找到更好的出路的人們也會發布更好的選擇。這種「解決方案」(?)是相當不雅,雖然應用程序運行正常(書面)我仍然有錯誤,在Dart Editor問題標籤..

至少我知道這將產生根據該工程的應用到我正在閱讀的代碼。我不認爲我有行語法錯誤:

import 'package:polymer/polymer.dart'; 

demo code作品和Dart Editor報告錯誤。所以是的,我同意,「消息沒有意義」,他們是錯的;因爲代碼運行得很好,具有一些獨特的測試值(見下文)。所以imho,Dart編輯器有一個問題。如果有人可以證實這一點,我們可以報告一個錯誤。

的方式,我得到了出這個問題的是:

  1. 關閉飛鏢編輯
  2. 取出編譯/目錄
  3. 重啓飛鏢編輯
  4. 運行您應用程序。

爲了測試,我對bot的'components'文件進行了更改,以確保沒有任何舊版本產生副作用(例如:Define a Custom Element)。

  • tut_stopwatch.html ...更改顏色。
  • tut_stopwatch.dart ...更改了定時器增量。

Volia!演示秒錶嵌入式組件使用'粉色'顏色和'3秒'增量。

我要交聯這個這個問題:

在中等和較大規模的項目,還有更多的保持依賴性和相互作用直不僅僅是一個乾淨命令。我認爲對構建的一些可見性和更好的控制是一個改進。

我有ZIP壓縮此練習的項目文件夾。如果有人想要一份副本,我可以發郵件給他。語法方面,除了修正「:host」錯誤之外,我沒有更改演示代碼。我只是將2個文件移動到組件/文件夾。

阿羅哈

+0

嗨*幫派* ...更新。這個問題是由** Packages **文件夾決定的問題。繼續我已經用[tag:Polymer-dart]自己確定了一個* gotcha *,檢查:[Invalid Character:fred](http://stackoverflow.com/questions/22454022),會。 – will

0

太長了評論,所以我將它張貼作爲回答:

我看了你的答案但這並沒有多大意義。
我在Dart工作了幾個月(大部分時間都是聚合物),而且我還沒有見過類似的東西。

如果DartEditor顯示奇怪的錯誤消息,您可以執行的操作是在DartEditor的應用程序目錄的上下文菜單中執行'Reanalyze Sources'。
如果這不會改變錯誤,那麼錯誤就出現在你的代碼中。

我從來沒有見過,構建目錄影響到您的Web目錄中的錯誤。

Dart非常寬容,所以當DartEditor顯示錯誤/警告/提示時,應用程序運行並不奇怪,因爲在DartEditor中運行的分析器不是。

+0

到目前爲止,Reanalyse尚未改變結果。當我殺死飛鏢編輯器時......一切看起來很好。您的評論告訴我這個安裝有問題。 – will

+0

Dart Editor:1.2.0; Dart SDK:1.2.0; Windows 7 SP1 – will

+0

分析儀可能有問題。你能發佈你的項目使用的分析儀版本嗎?當您在DartEditor中展開enchilada/packages目錄時,它會在軟件包的右側顯示版本。你是否執行過'pub upgrade'(在pubspec.yaml的上下文菜單中)? –