我需要在新的angularjs应用程序上重新实现旧的require模块。问题是,我需要另一个入口点,所以我在部分html中加载脚本。像这样:
<!-- load needed scripts -->
<script>
var require = {
baseUrl: "static/js/",
paths: {
"jquery": "./lib/jquery/jquery-1.11.2.min",
"d3": "./lib/d3/d3-3.4.11.min"
}
};
</script>
<script src="static/js/lib/require/require.js"></script>
<div class="container-fluid">
<div class="row">
<div class="col-xs-12">
<div id="model-chart-{{$index}}" data-ng-repeat="chart in chartData.getCharts()">
{{ renderChart("#model-chart-" + $index, chart) }}
</div>
</div>
</div>
</div>
在我的控制器中我有:
$scope.renderChart = function(selector, chartData) {
console.log("render chart", selector, chartData, require);
try {
// this require only works once
require(["scripts/util/renderChart"], function (renderChart) {
// console.log("data", data);
console.log(renderChart);
renderChart(
selector,
chartData,
-1
);
});
} catch (e) { $userinfo.setError("" + e); }
}
事情是这只能运作一次。这意味着访问网址是有效的。向后导航并重新访问会抛出一个TypeError:对象不是函数
如何使用旧的require模块。这个旧模块是由其他人编写的,所以我不希望我强迫重写: - )
编辑:
目前我最终使用了iframe( brrr )