gpt4 book ai didi

angularjs - 如何以编程方式从服务器重新加载/刷新模型数据?

转载 作者:行者123 更新时间:2023-12-03 05:37:35 25 4
gpt4 key购买 nike

背景

我有最基本的“新手”AngularJS 问题,请原谅我的无知:如何通过代码刷新模型?我确信它已在某个地方多次得到答复,但我就是无法找到它。我在这里观看了一些很棒的视频http://egghead.io并快速浏览了教程,但我仍然觉得我错过了一些非常基本的东西。

我找到了一个相关的例子here ($route.reload()) 但我不确定我是否理解如何在下面的示例中使用它

这是设置

controllers.js

function PersonListCtrl($scope, $http) {
$http.get('/persons').success(function(data) {
$scope.persons = data;
});
}

index.html

...
<div>
<ul ng-controller="PersonListCtrl">
<li ng-repeat="person in persons">
Name: {{person.name}}, Age {{person.age}}
</li>
</ul>
</div>
...

这一切都运行得非常好,每次重新加载页面时,我都会看到预期的人员列表

问题

  1. 假设我想实现刷新按钮,如何告诉模型以编程方式重新加载?
  2. 我如何访问该模型? Angular 似乎神奇地实例化了我的 Controller 的实例,但我如何获得它呢?
  3. 编辑添加了第三个问题,与#1相同,但如何纯粹通过 JavaScript 完成?

我确信我错过了一些基本的东西,但在花了一个小时试图弄清楚之后,我认为它值得一个问题。如果它重复,请告诉我,我将关闭+链接。

最佳答案

靠你自己,你已经成功了一半。要实现刷新,您只需将已有的内容包装在作用域的函数中即可:

function PersonListCtrl($scope, $http) {
$scope.loadData = function () {
$http.get('/persons').success(function(data) {
$scope.persons = data;
});
};

//initial load
$scope.loadData();
}

然后在你的标记中

<div ng-controller="PersonListCtrl">
<ul>
<li ng-repeat="person in persons">
Name: {{person.name}}, Age {{person.age}}
</li>
</ul>
<button ng-click="loadData()">Refresh</button>
</div>

就“访问您的模型”而言,您所需要做的就是访问 Controller 中的 $scope.persons 数组:

例如(只是 puedo 代码)在您的 Controller 中:

$scope.addPerson = function() {
$scope.persons.push({ name: 'Test Monkey' });
};

然后你可以在你的 View 中使用它或任何你想做的事情。

关于angularjs - 如何以编程方式从服务器重新加载/刷新模型数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14693815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com