1

我创建了一个自定义模块来在网站中显示日历

我的 In JS 无法调用 require()。

我的代码

website_calendar_block.js

odoo.define('website_calendar_block', function(require) {    "use strict";
 var website = require('website.website');

alert(website);

});

website_calendar_templates.xml

<template id="website_calendar_assets_frontend" inherit_id="website.assets_frontend" name="Calendar block assets">

<xpath expr="/t" position="inside">

<script type="text/javascript" src="/website_calendar/static/src/js/website_calendar_block.js"></script>

</xpath> </template>

<div class="calendar"> <span class="fa fa-2x fa-calendar"/></div>

我的问题是加载网站页面时收到警报未定义的警报(网站);

谁能帮我解决这个问题?

4

1 回答 1

0

这是 website.assets_fronted :

<template id="assets_frontend" inherit_id="web.assets_frontend" name="Website Frontend Assets">
<xpath expr="//link[last()]" position="after">
    <link rel="stylesheet" type="text/less" href="/website/static/src/less/website.ui.less"/>
    <link rel="stylesheet" type="text/less" href="/website/static/src/less/website.ui.components.less"/>
    <link rel="stylesheet" type="text/less" href="/website/static/src/less/website.wrapwrap.less"/>
    <link rel="stylesheet" type="text/less" href="/website/static/src/less/website.snippets.less"/>
    <link rel="stylesheet" type="text/css" href="/website/static/src/less/website.zoomodoo.less"/>
</xpath>
<xpath expr="//script[last()]" position="after">
    <script type="text/javascript" src="/website/static/src/js/website.js"></script>
    <script type="text/javascript" src="/website/static/src/js/website.share.js"></script>
    <script type="text/javascript" src="/website/static/src/js/website.snippets.animation.js"></script>
    <script type="text/javascript" src="/website/static/src/js/website.zoomodoo.js"></script>
</xpath>
</template>

你如何用你的 xpath 找到 t 元素?如果它没有抛出错误,它一定发现了其他东西,所以你的 Javascript 代码可能在网站资产加载之前就被调用了。

为什么不在<xpath expr="//script[last()]" position="after">website.assets_frontend 中使用 like ?

于 2017-01-14T21:23:17.773 回答