Я могу передать параметры клиентской странице HTML?

Я сделал следующее:

Я установил moment файл определения следующим образом:

tsd install moment --save

Затем я создал main.ts ]:

///

import moment = require("moment");
moment(new Date());

И я побежал:

$ tsc --module system --target es5 main.ts # no error 
$ tsc --module commonjs --target es5 main.ts # no error 

main.js выглядит так:

// https://github.com/ModuleLoader/es6-module-loader/blob/v0.17.0/docs/system-register.md - this is the corresponding doc
///
System.register(["moment"], function(exports_1) {
    var moment;
    return {
        setters:[
            function (moment_1) {
                // You can place `debugger;` command to debug the issue
                // "PLACE XY"
                moment = moment_1;
            }],
        execute: function() {
            moment(new Date());
        }
    }
});

Моя версия TypeScript 1.6.2.

Это то, что я узнал:

Momentjs экспортирует функцию (то есть _moment = utils_hooks__hooks и utils_hooks__hooks - функция, это совершенно ясно.

Если вы разместите точку останова в месте, которое я обозначил как PLACE XY выше, вы увидите, что moment_1 является объектом (!), А не функцией. Соответствующие строки: 1 , 2

В заключение, проблема не имеет ничего общего с TypeScript. Проблема в том, что systemjs не сохраняет информацию о том, что momentjs экспортирует функцию. Systemjs просто копирует свойства экспортируемого объекта из модуля (функция также является объектом в JavaScript). Я полагаю, вам следует сообщить о проблеме в репозиторий systemjs, чтобы выяснить, считают ли они ее ошибкой (или возможностью:)).

9
задан Motti 15 June 2009 в 18:23
поделиться

3 ответа

Возможно, вы захотите передать параметры, используя # вместо? в локальных файлах.

9
ответ дан 4 December 2019 в 14:30
поделиться

Firefox и Chrome позволят вам это сделать. Но IE этого не сделает. IE возвращает файл, который не найден, как вы сказали.

file:///D:/tmp/test.htm?blah=1

<script language='javascript'>
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
alert(getUrlVars());
</script>
4
ответ дан 4 December 2019 в 14:30
поделиться

вы хотите сказать, что вам нужно что-то вроде

window.location.search

http://developer.mozilla.org/En/DOM/Window.location

search: часть URL, которая следует за? символ, включая? символ.

1
ответ дан 4 December 2019 в 14:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: