AngularJS绑定似乎不起作用



我对 Angular 相当陌生,简单的绑定对我不起作用。

它只是向我展示了{{ trip.name }}{{trip.created}}就像它们所写的那样。

我的控制器:

(function () {
"use strict";
angular.module("app-trips")
.controller("tripsController", tripsController);
function tripsController() {
var vm = this;
vm.trips = [{
name: "US Trip",
created: new Date()
}, {
name: "World Trip",
created = new Date()
}];

我班的一部分:

@section Scripts {
<script src="~/lib/angular/angular.min.js"></script>
<script src="~/js/app-trips.js"></script>
<script src="~/js/tripsController.js"></script>
}
<div class="row" ng-app="app-trips">
<div ng-controller="tripsController as vm" class="col-md-6 col-md-offset-3">
<table class="table table-responsive table-striped">
<tr ng-repeat="trip in vm.trips">
<td>{{ trip.name }}</td>
<td>{{ trip.created }}</td>
</tr>
</table>
</div>

控制器的视图:

(function () {
"use strict";
angular.module("app-trips", ['ngSanitize']);
})();

顺便说一句 - 据说根据我遵循的课程,我还不需要['ngSanitize'],但没有它,它甚至不会显示DIV

编辑:正如@jellyraptor注意到的,我有一个拼写错误,=而不是:

编辑 2

这是错别字+[ngSanitize],我真的不需要。我修复了拼写错误并传递了一个空数组,一切正常。谢谢大家

Angular 未加载或遇到错误。使用 F12 调出开发工具,查看控制台中是否存在错误。同样在控制台中,您可以键入"角度"并按回车键,如果它报告角度未定义,则角度未正确加载。

因为您使用的是controllerAs语法,这里的变量是vm. 所以对于访问范围对象,请使用vm而不是tripsController

<tr ng-repeat="trip in vm.trips">
<td>{{ trip.name }}</td>
<td>{{ trip.created }}</td>
</tr>

(function() {
"use strict";
angular.module("app-trips", []);
})();
angular.module("app-trips")
.controller("tripsController", tripsController);
function tripsController() {
var vm = this;
vm.trips = [{
name: "US Trip",
created: new Date()
}, {
name: "World Trip",
created: new Date()
}];
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.2/angular.min.js"></script>
<div ng-app="app-trips" ng-controller="tripsController as vm" class="col-md-6 col-md-offset-3">
<table class="table table-responsive table-striped">
<tr ng-repeat="trip in vm.trips">
<td>{{ trip.name }}</td>
<td>{{ trip.created }}</td>
</tr>
</table>
</div>

你在trips数组的第二个对象的"created"属性中放了一个等号。

vm.trips = [{
name: "US Trip",
created: new Date()
}, {
name: "World Trip",
created = new Date()
}];

应该是

vm.trips = [{
name: "US Trip",
created: new Date()
}, {
name: "World Trip",
created: new Date()
}];

最新更新