【发布时间】:2015-06-25 00:17:03
【问题描述】:
基本上,我的问题是“我是 {{ 10 + 13 }}”是在 main.js 中创建“存储”模块之前呈现一秒/半秒的内容。
<!DOCTYPE html>
<html lang="en" ng-app="store">
<head>
<title>...</title>
<script data-main="main.js" src="../bower_components/requirejs/require.js"></script>
<link href="../bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
I am {{ 10 + 13 }}
</body>
main.js 设置 requirejs 配置,需要 angular 库并设置“store”模块:
require.config({
paths: {angular: '../bower_components/angular/angular.min'},
shim: {angular: {exports: 'angular'}}
});
require(['angular'], function(angular) {
var app = angular.module('store', []);
});
我认为发生这种情况的原因是因为 main.js 和 angular 库是由 requirejs 异步加载的(在 script 标签上有一个“async”属性),所以 DOM 在 store 模块创建之前就被渲染了,从而造成延迟。
我应该怎么做才能避免在呈现“我是 {{ 10 + 13 }}”和“我是 13”之间出现这种差距?我可以同时加载 main.js 和 angular js 同步/不使用 requirejs,但这似乎不是最佳实践。
【问题讨论】: