【发布时间】:2015-05-11 23:53:12
【问题描述】:
我正在使用 Yeoman Angular-fullstack 构建一个 Web 应用程序。我对如何更新我的 $scope 变量感到困惑,以便在进行更改后,结果会自动显示在 html 页面上而无需刷新。
HTML
<h1 class="page-header">Drugs:</h1>
<div class="row">
<div class="col-sm-4 col-sm-offset-4">
<div ng-repeat="current in alldrugs">
<p>
<a href="/edit={{current._id}}"> <button class="btn btn-default" type="button">{{current.name}}</button></a>
<a ng-click="delete(current)"><button class="btn btn-default" type="button">delete</button></a>
</p>
</div>
</div>
</div>
Controller.js
'use strict';
angular.module('firstApp')
.controller('MainCtrl', function ($scope, $http) {
$scope.alldrugs = [];
$http.get('/api/drugs').success(function(alldrugs) {
$scope.alldrugs = alldrugs;
});
$scope.delete = function(thing) {
$http.delete('/api/drugs/' + thing._id);
$http.get('/api/drugs').success(function(alldrugs) {
$scope.alldrugs = alldrugs;
});
};
});
当调用 $scope.delete 时,该项目被删除,但是在我刷新页面之前页面不会反映更改。我认为这与 http 回调函数的范围有关。任何帮助将不胜感激,谢谢。
【问题讨论】:
-
您可以使用
splice,但您的后端应该会更新列表。不确定后端是否有错误。尝试链接您的delete和get -
至少将 $http.get('/api/drugs') 放在删除回调中,以防万一。
-
代码几乎直接来自the github project,所以我很确定它与前端有关。不幸的是,链接删除和获取并没有帮助。奇怪的是它正在成功删除 - 该项目会立即在数据库中更新,我可以在控制台中打印更改。虽然没有反映在 html 中
标签: angularjs node.js angularjs-directive angularjs-scope mean-stack