我有一个Helper.js
文件,基本上它是一个对象,其中包含我Backbone
个应用程序周围使用的全局属性列表。
我需要在我body
应用内部使用Backbone
之前设置其中的一些属性,我尝试了这个但是它不起作用:
<script type="text/javascript">
require(["app/helper"], function (Helper) {
console.log('default Helper.webroot = ' + Helper.webroot);
Helper.webroot = "<?php echo $this->webroot;?>";
console.log('require Helper.webroot = ' + Helper.webroot);
});
</script>
console:
default Helper.webroot = /
require Helper.webroot = /site.com/subfolder/
然后我在这个require中加载一个define模块:
<script type="text/javascript">
require(["app/models/status_message", "app/views/status_message"], function (StatusMessageModel, StatusMessageView) {
var StatusMessage = new StatusMessageView({
model:new StatusMessageModel({
icon : "<?php echo $icon;?>",
type : "<?php echo $message_type; ?>",
title : "<?php echo __('Informazione'); ?>",
message :"<?php echo __('Nessun messaggio di notifica'); ?>"
})
});
<?php if(!empty($message)) { ?>
StatusMessage.model.set({message:"<?php echo $message; ?>"});
<?php } ?>
});
在app/views/status_message
我试图登录Helper.webroot:
define([
"jquery",
"handlebars",
"lodash",
"helper",
"backbone",
"app/models/status_message",
"text!app/templates/status_message.php"
],
function ($, Handlebars, _, Helper, Backbone, StatusMessageModel, tmplStatusMessage) {
console.log('define Helper.webroot = ' + Helper.webroot);
return Backbone.View.extend({...});
}
);
console:
define Helper.webroot = /
所以我没有在webroot
应用之前设置Backbone
,我该怎么做?
答案 0 :(得分:0)
您可以在另一个require
的函数正文中调用require
:
require(["app/helper"], function (Helper) {
Helper.webroot = "<?php echo $this->webroot;?>";
require(["app/models/status_message", "app/views/status_message"],
function (StatusMessageModel, StatusMessageView) {
// [Helper.webroot is correctly set.]
})
})