Dart 更改<;头>;HTML在角省道中的应用

Dart 更改<;头>;HTML在角省道中的应用,dart,angular-dart,Dart,Angular Dart,所以我是一个相对较新的角度省道和一般省道,我正在尝试创建一个简单的网络应用程序 当我以前做PHP开发时,我总是有一个配置文件来确定应用程序运行的环境,并决定以不同的方式进行自我设置 我正试图找出如何实现类似的角度省道。特别是作为开始的一个例子,我想根据加载应用程序的URL设置不同的base href。当您阅读文档时,它说在开发过程中,您应该如下设置基本href: <script> // WARNING: DO NOT set the <base href> like

所以我是一个相对较新的角度省道和一般省道,我正在尝试创建一个简单的网络应用程序

当我以前做PHP开发时,我总是有一个配置文件来确定应用程序运行的环境,并决定以不同的方式进行自我设置

我正试图找出如何实现类似的角度省道。特别是作为开始的一个例子,我想根据加载应用程序的URL设置不同的base href。当您阅读文档时,它说在开发过程中,您应该如下设置基本href:

<script>
  // WARNING: DO NOT set the <base href> like this in production!
  // Details: https://webdev.dartlang.org/angular/guide/router
  (function () {
    var m = document.location.pathname.match(/^(\/[-\w]+)+\/web($|\/)/);
    document.write('<base href="' + (m ? m[0] : '/') + '" />');
  }());
</script>
<base href="/">

//警告:请勿在生产中这样设置!
//详情:https://webdev.dartlang.org/angular/guide/router
(功能(){
var m=document.location.pathname.match(/^(\/[-\w]+)+\/web($\124;\/)/);
文件。写(“”);
}());
但对于分发,应如下设置:

<script>
  // WARNING: DO NOT set the <base href> like this in production!
  // Details: https://webdev.dartlang.org/angular/guide/router
  (function () {
    var m = document.location.pathname.match(/^(\/[-\w]+)+\/web($|\/)/);
    document.write('<base href="' + (m ? m[0] : '/') + '" />');
  }());
</script>
<base href="/">

所有这些都需要位于HTML页面的
部分,所以我想在这里做一些if语句。我将如何在PHP中执行此操作的示例:

<head>
   <?php if(DEV) { ?>
      // Do the development base href
   <?php } else if(PROD) { ?>
      // Do the production base href
   <?php }?>
</head>

//开发基地是href吗
//生产基地在哪里

所以我的问题基本上是,像这样的事情现在在角省道中可能吗?

你不能用角省道在
中进行绑定。
我认为仍然有一种方法可以使用
-D=PROD=…

然后您可以使用const isProd=bool.fromEnvironment('PROD')(另请参见)
然后使用
dart:html
操作DOM

我已经有一段时间没有在web中使用它了,我不确定Dart 2中是否还支持它

找到更新

如果
仅用于角度布线,则最好使用

import 'package:angular_router/angular_router.dart';
及加入

ValueProvider<String>.forToken(appBaseHref, '/'),

根据目标环境更改某些设置

非常感谢你的回答!虽然我了解定制脚本的方法,但我肯定也需要为我的发行版编写一些脚本。但我想我仍然很好奇如何更改HTML标题部分中的一些内容。我在某个地方读到,我可以有多个index.html和main.dart文件。你能告诉我如何实现这一点的教程吗?
import'dart:html'
document.head.querySelector(…).remove()
.children.add()
。。。你也可以用Dart做JavaScript允许的任何事情。是的,我知道这一点。但是您无法按照dart文档操作该部分中的内容。因此,如果可能的话,我愿意维护index.html和main.dart的多个版本?为什么您认为您无法操作
?一个问题可能是,它需要在执行Dart代码之前进行更新,以满足搜索引擎或类似的需求。在这种情况下,最好使用多个
index.html
文件。我可以用
{{title}}
占位符修改页面的标题,后者将其绑定到常量值。但未能实现“如果”的说法。你能告诉我使用多个
index.html
文件的正确方法吗?