Использование CDNJS с LibMan для Moment.JS - PullRequest
0 голосов
/ 25 декабря 2018

Я пытаюсь попасть в Asp.Net Core 2.2 MVC прямо сейчас.Я хочу использовать библиотеку moment.js для некоторых вычислений даты из-за значений из средства выбора времени DevExpress.Я смог включить его в соответствии со следующими инструкциями , используя "libman.json":

{
  "provider": "cdnjs",
  "library": "moment.js@2.23.0",
  "destination": "wwwroot/lib/moment.js/",
  "files": [
    "moment-with-locales.min.js",
    "locale/de.js"
  ]
}

Доступны файлы * .js.

a busy cat

Однако нельзя использовать тип или заводской 'moment ()', как описано на странице https://momentjs.com/docs/ (также нет особой выборки для MVC),Не существует.Я также пытался использовать nuget 'Moment.js', но на него также невозможно сослаться.

Я пытался что-то подобное в моем * .cshtml ... но это больше Angular, а не MVCне так ли?

@ section Скрипты {

<script>
    import $ from jquery;
    import moment from moment;
    const m = moment();

    function dateDiff(secondDate) {            
        //var a = moment([2008, 9]);
        //var b = moment([2007, 0]);
        //a.diff(b, 'years');
        return $("#age").text("" + " years");
    }
</script>

}

Я не могу получить доступ к типу moment.js.Что мне нужно сделать?Что я сделал не так?

Заранее спасибо!С уважением.

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

@ Тао Чжоу - большое спасибо за ваш ответ.Конечно, я попытался сослаться на него / зарегистрировать его в своем _layout.cshtml.

Проблема была где-то еще ... Я тестировал CodeRush из DevExpress как IntelliSense ...... Для JavaScript этот IntelliSense не делаетпохоже, распознает тип для moment.js и, возможно, любой тип js.Поэтому я подумал, что ссылка не будет работать, но на самом деле это была просто проблема с расширением IDE!

Итак, ReSharper ... вот и мы:)

0 голосов
/ 26 декабря 2018

Перед использованием moment вам необходимо сослаться на него.

Для короткого использования, вы можете попробовать, как показано ниже:

@section Scripts{ 
    <script src="~/lib/moment.js/moment-with-locales.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            var now = moment();
            alert(now);
            var a = moment([2008, 9]);
            var b = moment([2007, 0]);
            alert(a.diff(b, 'years'));
        });
    </script>
}

Вы также можете зарегистрировать moment в глобальном масштабе _Layout.cshtml.

<!DOCTYPE html>
<html>

    //rest code
    <environment include="Development">
        <script src="~/lib/jquery/dist/jquery.js"></script>
        <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.js"></script>
    </environment>
    <environment exclude="Development">
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"
                asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
                asp-fallback-test="window.jQuery"
                crossorigin="anonymous"
                integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=">
        </script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.bundle.min.js"
                asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"
                asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal"
                crossorigin="anonymous"
                integrity="sha256-E/V4cWE4qvAeO5MOhjtGtqDzPndRO1LBk8lJ/PR7CA4=">
        </script>
    </environment>
    <script src="~/js/site.js" asp-append-version="true"></script>
    <script src="~/lib/moment.js/moment-with-locales.min.js"></script>
    @RenderSection("Scripts", required: false)
</body>
</html>
...