2012-03-20 84 views
2

我有興趣使用更精細的Javascript包含文件來增強可維護性。但是,我錯過了一些東西。我是否還可以「覆蓋」或包含我的Razor視圖上下文中的部分?比方說,我的JavaScript包括如下:包含Javascript中的剃刀標籤(在獨立文件中)?

function CategoriesViewModel() { 
    var self = this; 

    self.searchMode = ko.observable("SEARCH"); // Wire up with Knockout.js 
} 

但是,如果這個腳本是內嵌我的.cshtml Razor視圖的一部分,我能夠做這樣的事情:

function CategoriesViewModel() { 
    var self = this; 

    self.searchMode = ko.observable("SEARCH"); // Wire up with Knockout.js 
    self.categories = @Html.JSONFor(Model.LookupForCategories.Select(c => c.Text)); 
} 

(如果沒有語法突出顯示,我會指出我已經包含了一個服務器標記,它可以從我的服務器端ASP.MVC ViewModel中直接放置一些Javascript代碼/數據。)

如果我將Javascript拉入單獨的文件幷包括他們,我失去了這種能力。有沒有我失蹤的功能或技術?

+0

我敢肯定你會必須通過在函數中添加一些參數來將任何服務器數據傳遞給JavaScript。 – 2012-03-20 14:24:45

回答

1

很遺憾沒有。處理服務器端框架和js時,這是一個常見問題。你幾乎堅持參數化,或者將變量聲明爲全局變量,或者作爲某些共享對象的屬性。