在玩了AMD/RequireJS后,我想知道加载包含模板和CSS的UI模块是否是一个好主意,这样它们就完全独立于网页.
这听起来不错,但我没有看到这在野外实施,所以可能存在陷阱.
想想一些具有以下结构的UI模块:
myWidget
|--img
|--main.js
|--styles.css
+--template.tpl
Run Code Online (Sandbox Code Playgroud)
一个文件夹中的所有内容.看起来很不错.
main.js中的模块看起来像这样:
define(["TemplateEngine", "text!myWidget/template.tpl"], function(TemplateEngine, template) {
// Load CSS (Pseudo Code)
var cssUrl = "myWidget/styles.css";
appendToHead(cssUrl);
return function() {
return {
render: function(data) {
return TemplateEngine.toHtml(template, data);
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
现在的问题是:
是否可以使用YAML配置文件配置Silex应用程序?我打赌是的,但它是如何正确完成的?例如,我想根据环境使用不同的配置,如config.dev.yml和config.prod.yml.
配置文件应包含应用程序本身和已注册扩展/服务的参数.
例:
// Debug flag should be set in the config file
$app['debug'] = true;
// Extension options should also be set in config file
$app->register(new Silex\Extension\TwigExtension(), array(
'twig.path' => __DIR__.'/views',
'twig.class_path' => __DIR__.'/vendor/Twig/lib',
));
Run Code Online (Sandbox Code Playgroud)
我是否必须自己解析YAML文件并相应地设置参数,还是有更"神奇"的方法来做到这一点?
是否可以在Web应用程序中检查iPad版本(1或2)?由于用户代理看起来相同(请参阅http://www.webtrends.com/Support/KnowledgeBase/SolutionDetail.aspx?Id=50140000000acbiAAA),因此浏览器的标准检查在此处不起作用.
我们可以检查JavaScript中仅在版本2中可用的功能(如陀螺仪)吗?