2013-12-13 93 views
1

我正在嘗試angular.dart,看到它很慢。當我的HTML頁面被加載包含角度時,角度指令首先被看到,然後被適當地轉換。它不應該瞬間轉換,用戶不應該看看我們是否使用角?angular.dart似乎很慢

<!DOCTYPE html> 
<html ng-app> 
<head> 
    <title>Hello, World!</title> 
</head> 
<body> 

    <h3>Hello {{name}}!</h3> 
    name: <input type="text" ng-model="name"> 

    <script type="application/dart" src="main.dart"></script> 
    <script type="text/javascript" src="packages/browser/dart.js"></script> 
</body> 
</html> 
+3

如果你的意思是你看到{{name}},那麼Angular.js的工作方式完全相同,但是你應該有一種方法來壓制它,就像在Angular.js中一樣。 [這就是所謂的ngCloak](http://stackoverflow.com/questions/12866447/prevent-double-curly-brace-notation-from-displaying-momentarily-before-angular-j)在angularjs – CorayThan

+0

也許會有一天angular將由瀏覽器本地支持:-)但現在我們必須手動控制應用程序的** first **頁面的顯示 –

+0

@CorayThan,ng-clock指令也是AngularDart的一部分。 –

回答

3

帶標籤class =「ng-cloak」的Surround {{name}}。我用span標籤。通過指定css規則隱藏它.ng-cloak {display:none; }。 加載角度時,它會從span標記中刪除class =「ng-cloak」,並且所有內容都按預期工作。

<!DOCTYPE html> 
<html ng-app> 
<head> 
    <title>Hello, World!</title> 
    <style> 
     .ng-cloak{ display:none;} 
    </style> 
</head> 
<body> 
    <h3>Hello <span class="ng-cloak">{{name}}</span>!</h3> 
    name: <input type="text" ng-model="name"> 

    <script type="application/dart" src="main.dart"></script> 
</body> 
</html> 
0

的另一種方法是使用ng-bind所證明在此YouTube視頻:AngularJS MTV Meetup: Best Practices (2012/12/11)(後約12分鐘)

NgBindDirective class

的API文檔引用通常,可以請不要直接使用ngBind,而應使用類似{{表達式}}的雙捲曲標記,但較少使用 詳細信息。

在Angular編譯之前,瀏覽器在其原始狀態 中暫時顯示 模板時,最好使用ngBind而不是{{表達式}}。由於ngBind是一個元素屬性,因此在加載頁面時,它會使用戶對綁定不可見。

這樣,您可以顯示默認內容,當Angular準備好 而不是顯示空白頁面或進度圖標時,該默認內容將被替換。