javascript - 模型更新时无法让 Angularjs 更新 View

标签 javascript angularjs view model

我是 Angular 新手,但我陷入了困境。我在 jsbin.com 上有一些代码 --->( http://jsbin.com/ratageza/7/edit?html,js,output )

它并不漂亮,但它基本上显示了我正在做的事情。 在我的实际代码中,我使用 $http.get 调用 RESTful 后端从数据库加载数据,并使用 $http.post 调用添加到数据库。只要数据库获取和更新,一切工作正常。但是,在我使用“创建”表单创建新对象后,如果我单击“列出全部”,我的锦标赛对象不会更新。

我很困惑在 $http.post 调用之后是否需要 $apply ?我尝试过使用它,但要么使用错误,要么这不是我的问题。我查遍了 stackoverflow,似乎找不到我的问题的答案。

如果有人能看到我做错了什么,我将非常感谢您的帮助。

谢谢!

最佳答案

查看我在这里所做的细微更改:http://jsbin.com/ratageza/8/edit?html,js,output

变化在于您定义 Controller 使用的方式。您在两个不同的地方使用 TournamentController,这实际上为您提供了该 Controller 的两个实例,具有两个独立的隔离范围。您的“全部列出” View 绑定(bind)到一个实例,而“创建” View 绑定(bind)到一个完全不同的实例。

另外,你关于 $apply 的问题。作为一般规则,您应该很少使用 $apply 并且您不应该在 Controller 中使用它,因为在那里使用它是不安全的。指令确实是使用 $apply 的唯一安全的地方,即使在那里,也只有在数据在 Angular 范围之外修改时才应该使用它。根据事物处理的顺序,您会发现如果您在 Controller 中使用 $scope.$apply(),您会经常收到有关已处于摘要循环中的异常。

关于javascript - 模型更新时无法让 Angularjs 更新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24502052/

相关文章:

angularjs - ng-grid 中的外部过滤器

javascript - 对无效返回值应用 ng 类

android - 切换 View /弹出窗口

javascript - 从指令内部 $watch 对 ngModel 的外部更改的正确方法

python - 如何修复 django 中的 GET 参数错误?

postgresql - 在 Postgres 中的物化 View 上创建主键

javascript - jQuery 在单击时添加类并在单击另一个时删除

javascript - Backbone.js 仅在服务器成功(200 状态)时添加到集合中

php - 表单 Action 问题

javascript - GOOGLE CHARTS 使用实现折线图作为动态数组对象循环