我是 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/