2016-11-16 77 views
0

道歉,如果它的基本爲C#開發人員在那裏。我在一個邊欄中有幾個<accordion>,並且每個都有data-ng-click="isOpen = !isOpen"來擴展或摺疊手風琴。問題是每個這些調用一個不同的控制器。有沒有一種方法來全局設置isOpen變量,以確保所有的手風琴默認擴展,並可以點擊展開/摺疊?使用Razor設置javascript變量

閱讀:Passing Javascript to Razor$rootscopeAccordion expand all和許多其他

這是其中一個部分的樣本代碼.....還有更多的,雖然有不同的控制器:

<accordion> 
     <div class="zone zone-aside-right"> 


       <div data-ng-controller="SelectUserController" id="account-group-widget"> 
        <accordion-group class="sp-sidebar-module"> 
         <div> 
          <accordion-heading> 
           <h3 class="h4 sp-sidebar-module-header"> 
            <a id="headerRelatedContacts" href="javascript: void(0);" data-ng-click="isOpen = !isOpen"><i id="iconRelatedContacts" class="icon-refresh icon-spin"></i>@mycontact.text</a> 
           </h3> 

          </accordion-heading> 
         </div> 
        </accordion-group> 
       </div> 
</accordion> 

欣賞的建議。 ..

+0

你:

/// <summary> /// Convert bool value to javascript boolean (as string because it is placed in javascript) /// </summary> public static System.Web.IHtmlString ToJSBoolean(this bool value) { return new MvcHtmlString(value.ToString().ToLower()); } 

剃鬚刀視圖中使用要讓所有的手風琴同時展開和瓦解? – user449689

回答

1

假設您的視圖模型中存儲爲isOpen的值爲bool,則可以使用剃刀@語法將此值作爲文本發送,e 。G。在<script>區塊內。

有一些注意事項一個C#布爾值轉換爲JS布爾時候,所以我們用下面的擴展方法來處理這個問題:

<script type="text/javascript"> 
    var isOpen = @Model.IsOpen.ToJsBoolean(); 
</script>