2013-08-01 13 views
0

我開始在Rails應用上使用AngularJs。我想知道如何管理rails和angularj之間的通信。我想生成軌道模板,然後angularjs將執行控制器更新視圖:如何使用AngularJs和Rails管理視圖

.span6.box.applications{ "ng-controller" => "ApplicationListCtrl"} 
     .padding5.clearfix 
     .clearfix 
      %h2.inline.pull-left.no-border= t('home.titles.applications') 
     .content.top5 
      - if @applications.count > 0 
      %table.table.table-striped 
       %thead 
       %tr 
        %th= Application.human_attribute_name(:id) 
        %th= Application.human_attribute_name(:name) 
        %th 

       %tbody 
       %tr{ "ng-repeat" => "application in applications" } 
       /%div{ "ng-include" => "", "src" => "'/applications/new.html'" } 
        %td {{application.name}} 
        %td {{application.name}} 
        %td{ width: "50px"} 
        .pull-right 
         - if can? :edit, Application 
         %span.fui-gear{"data-toggle" => "tooltip", :title => t('form.settings'), "ng-click" => "edit()" } 

         - if can? :read, Application 
         %span.fui-search.left10{"data-toggle" => "tooltip", :title => t('form.show'), "ng-click" => "show()"} 

的問題是,我有一個壞的視覺效果。它首先顯示我:

Application controller before angular execution

然後它會改變它:

Applications with angularjs

它的工作原理,但我的視覺效果。我該如何管理。我怎樣才能創建模塊與AngularJs可重用?

+0

[避免在angular.js編譯/插入文檔之前暫時顯示雙大括號表示法]可能的重複(http://stackoverflow.com/questions/12866447/prevent-double-curly-brace-notation-from-displaying - 立即先於角j)的 –

回答

0

我不熟悉使用Rails或它的模板引擎,但我知道,對於angularjs用來掩蓋他們的原始狀態的那些模板變量,而加載,可以嘗試兩件事情:

  1. 嘗試增加ng-cloak屬性到封閉元素(在這種情況下爲tr),並將display: none !important;放入您的CSS中。

  2. 對於非CSS解決方案,請嘗試使用ngBindngBindTemplate,而不是將模板變量封裝在大括號中。

例如:

<td ng-bind="application.name"></td> 

我要在Rails的模板形式的胡亂猜測爲您的示例:

%td{ "ng-bind" => application.name } 

欲瞭解更多信息,請參閱AngularJS documentation on ng-bind