Метки бритвы во включенном Javascript (в отдельном файле)? - PullRequest
2 голосов
/ 20 марта 2012

Я заинтересован в использовании более детализированных включаемых файлов Javascript для повышения удобства сопровождения.Однако я что-то упускаю.Могу ли я все еще «перезаписать» или включить разделы из моего контекста представления Razor?Допустим, мой Javascript включает следующее:

function CategoriesViewModel() {
    var self = this;

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

Но если бы этот скрипт был встроенным как часть моего представления Razor .cshtml, я мог бы сделать что-то вроде этого:

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 ));
}

(Без подсветки синтаксиса я укажу, что я включил тег сервера, который помещает некоторый код / ​​данные Javascript прямо из моего серверного ASP.MVC ViewModel.)

Если явытащить Javascript в отдельные файлы и включить их, я теряю эту способность.Есть ли какая-то особенность или техника, которую мне не хватает?

Ответы [ 2 ]

2 голосов
/ 20 марта 2012

Я еще не использовал его сам, но вас может заинтересовать пакет nuget RazorJs: http://nuget.org/packages/RazorJS

Подробнее по теме от автора здесь: http://djsolid.net/blog/razorjs---write-razor-inside-your-javascript-files

1 голос
/ 20 марта 2012

К сожалению, нет. Это распространенная проблема при работе с серверными платформами и js. Вы в значительной степени застряли с параметризацией или объявлением переменных либо в качестве глобальных переменных, либо в качестве свойств какого-либо общего объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...