Flask -- 从外部实例化对象似乎不执行任何操作



我只是从Flask开始,所以我可能忽略了一些非常明显的东西。我已经加载了我的javascript文件:

<script src="{{ url_for('static', filename='Page.js') }}"></script>

然后我尝试从js文件实例化一个对象:

<script>
    var page = new Page("index");
</script>

在Page.js中,我有这个:

var Page = function(page) {
    alert("init");
    <some other things>
    }
<and then some object methods Page.prototype.init_standard = function() {} etc>

警报没有警报,虽然我期待它。另外,如果我在HTML页面的实例化之前放了一个警告,我就会得到警报,如果我在HTML页面的实例化之后的行上放了一个警报,我就不会得到警报。我不确定这是Flask的问题还是javascript的问题——我都是新手。

编辑:为了将这种可能性扼杀在萌芽状态,javascript文件正在根据开发服务器加载,状态304

Page.js只需要定义一个函数来创建你想要的对象。所以Page()应该只是一个以'return this;'结束的函数。对象创建时并不严格要求返回此值。

function Page(page) {
    alert("init");
    ... Your code and methods...
    // Example Method:
    this.foo = function(param) {
        ... function body ...
    };
    return this;
}

然后你可以创建一个对象:

var page_object = new Page("index");
page_object.foo(some_data);

我在查看浏览器调试器后发现了它。该公司表示,佩奇没有被定义。经过一些尝试和错误,我意识到我不能在javascript文件中使用{{flask模板符号,可能是因为它不是作为模板加载的,所以不会以这种方式对其进行解析。无论如何,我最终只是将{{}}链接移动到html模板并将其作为参数传递给javascript。

最新更新