gpt4 book ai didi

javascript - 在 Controller 外更新 Angular 模型

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:49:35 24 4
gpt4 key购买 nike

我正在学习 Angular 教程,并进行了大量阅读。但是,我很难找到这个问题的答案。或者,我可能想错了,我希望有人能帮助我解决这个问题!

非常简单的例子:

var phones = [
{"name": "Nexus S",
"snippet": "Fast just got faster with Nexus S.",
"age": 0},
{"name": "Motorola XOOM™ with Wi-Fi",
"snippet": "The Next, Next Generation tablet.",
"age": 1},
{"name": "MOTOROLA XOOM™",
"snippet": "The Next, Next Generation tablet.",
"age": 2}
];

function PhoneListCtrl($scope) {
$scope.phones = phones;
$scope.orderProp = 'age';
}

我在上面表示的是来自该 Controller 外部的数据源。我有一个现有的缓存功能,可以根据需要对服务器进行 XHR 获取新数据。

假设模型随后发生变化:

phones[3] = {"name": "Something new from the server",
"snippet": "Here is some new incoming data",
"age": 5};

如何通知 Angular PhoneListCtrl Controller 模型已更新?如果您自己测试并更新数组,Angular 不会意识到更改,因此不会更新 DOM。

我知道 $http 服务,但在我当前的架构中,我无法在 Controller 中使用 $http 来获取数据—— Controller 需要询问我为数据编写的外部函数,并且我需要某种方式在数据随后发生变化时通知 Angular 的 Controller 。

感谢您的帮助和见解!

最佳答案

如果您从外部 Angular 上下文更新数据,您可以使用类似的方法获取定义 Controller 的元素的范围

angular.element(domElement).scope()

然后使用

$apply 范围内定义的方法来推送更新

查看更多详情 here

关于javascript - 在 Controller 外更新 Angular 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17915967/

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