这是带有angular-alpha35的index.html:
<html>
<head>
<meta charset="UTF-8">
<base href="/">
<title>APP Ang2</title>
<script src="scripts/traceur-runtime.js"></script>
<script src="https://jspm.io/system@0.16.js"></script>
<script src="scripts/bundle35/angular2.dev.js"></script>
<script src="scripts/bundle35/router.dev.js"></script>
<meta name="viewport" content="width=device-width,initial-scale=1" />
<link rel="stylesheet" type="text/css" href="css/main.css">
</head>
<body>
<app>Loading...</app>
<script>System.import('app').catch(console.log.bind(console));</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果有互联网连接并且system.js可以加载,它工作正常.如果我尝试获取system.js的本地副本,如下所示:
<script src="scripts/system@0.16.11.js"></script>
Run Code Online (Sandbox Code Playgroud)
然后没有任何作用,直到我放入rx.js根文件夹并将此行放在文件的末尾:
<script src="scripts/es6-module-loader@0.16.6.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
然后System.js工作正常,但在这种情况下,angular2绑定有一个奇怪的问题.在我与页面进行一些交互之前它们不工作(提交表单,打开一个选择,使一些div改变它的尺寸,即使是简单的隐藏等等).只要页面上的内容发生变化,所有绑定就会起作用,页面就会重新生成.
如何在没有node.js且没有互联网连接的情况下使所有这些工作在本地工作?
拜托,你能帮帮我吗?它应该很容易,但我找不到解决方案.有一个有两个选择的表单.#select1更改时,#select2需要根据#select1的值显示数据.例如,获取每个州的城市.的种类 :
//html
<select (change)="select2.getCities($event)" ng-control="userState">
<option *ng-for="#state of states" [value]="state">{{state}}</option>
</select>
<select #select2 ng-control="userCity">
<option *ng-for="#city of cities" [value]="city">{{city}}</option>
</select>
//the Component
@Component({ selector: 'user-management', appInjector: [FormBuilder] });
@View({ templateUrl: 'user-management.html', directives: [NgFor] });
export class userManagement {
constructor(fb: FormBuilder){
this.userForm = fb.group({
userState: [],
userCity: []
});
this.states = ['New York', 'Pennsylvania'];
this.cities = {'New York': ['Albany', 'Buffalo'], 'Pennsylvania':['Pittsburgh', 'Philadelphia']};
}
getCities($event){
return this.cities[$event.target.value];
}
}
Run Code Online (Sandbox Code Playgroud)
当然,这不起作用.请问,你知道应该怎么做吗?它在alpha28中.