我只是 angularJs 的初学者,我正在尝试使用 $http 和 asp.net MVC 进行 CRUD 操作:-
我正在使用 ng-repeat 来显示 "Terms" 列表。
我有一个按钮来显示一个对话框,该对话框又将用于插入新的“术语”。
- ng-repeat 效果很好,对话框也显示了,我可以成功插入新项目。
问题是:--插入新术语并关闭对话框后,ng-repeat 不会更新。这是我正在使用的代码:
var glossayApp = angular.module("glossaryApp", ['ui.bootstrap.dialog']);
var ctrl = glossayApp.controller("termController", function ($scope, $http, $route, $dialog, $window) {
$scope.terms = [];
$scope.init = function () {
$http.get("/Home/List").success(function (data) {
$scope.terms = data;
});
}
$scope.add = function () {
$scope.opts = { backdrop: true, keyboard: true, backdropClick: true, templateUrl: '/Home/Add', controller: 'dialogController' };
var d = $dialog.dialog($scope.opts);
d.open().then(function (term) {
if (term) {
$http.post('/Home/Add/', { Name: term.name, Definition: term.definition }).success(function () {
$scope.init();
});
}
});
}
});
glossayApp.config(function ($routeProvider) {
$routeProvider.when('/', {
controller: 'termController', templateUrl: '/Home/list'
}).when('/Details:id', {
controller: 'termController', templateUrl: '/Home/details'
}).otherwise({
redirectTo: '/'
});
});
var dialogController = glossayApp.controller('dialogController', function ($scope, dialog) {
$scope.save = function (term) {
dialog.close(term);
}
$scope.close = function () {
dialog.close();
}
});
这是我在 ngrepeat 中使用的 HTML:-
<table border="0" cellpadding="0" cellspacing="0" ng-init="init();">
<thead>
<tr>
<td>
Term
</td>
<td>
Definition
</td>
</tr>
</thead>
<tr ng-repeat="term in terms">
<td>
{{term.Name}}
</td>
<td>
{{term.Definition}}
</td>
</tr>
</table>
<br />
<input type="button" name="Add" value="Add New Term" ng-click="add();" />