AngularJS-更新不同控制器上的数据
我从这个框架开始。AngularJS-更新不同控制器上的数据,angularjs,Angularjs,我从这个框架开始。 我有一个关于从另一个控制器更新控制器的问题 我知道这个问题已经问过很多次了。 但这不是我的问题。 我可以用rootScope解决我的问题,但我不喜欢(我错了吗?) 这是我的例子: 我以为它会自动更新这部分代码: this.article = articleService.article; 我想在单击“阅读新闻”时更新我的PanelController。 你好吗? 最佳做法是什么?首先是示例中的几个小问题: 在以下HTML中: <a href="#" ng-click
我有一个关于从另一个控制器更新控制器的问题 我知道这个问题已经问过很多次了。 但这不是我的问题。
我可以用rootScope解决我的问题,但我不喜欢(我错了吗?) 这是我的例子: 我以为它会自动更新这部分代码:
this.article = articleService.article;
我想在单击“阅读新闻”时更新我的PanelController。你好吗?
最佳做法是什么?首先是示例中的几个小问题:
<a href="#" ng-click="selectArticle(article.index)" class="btn btn-default">
View news
</a>
这将把存储在articleService.article
中的引用复制到This.article
如果articleService.article
持有对id为1的article对象的引用,this.article
现在也持有对该对象的引用。然而,它们是两个不同的参考
您有以下代码来设置所选项目对象:
this.selectArticle = function(setArticle) {
articleService.article = articleService.articles[setArticle - 1];
};
现在,articleService.article
将保存对另一个article对象的引用,例如id为2的对象。但是,PanelController
中的this.article
仍将保留对id为1的article对象的引用
要实现您的目标,最简单的解决方案是在视图中使用原始的articleService.article
引用,而不是创建它的副本
在面板控制器中
this.articleService = articleService;
在HTML中:
<h1>{{panel.articleService.article.title}}</h1>
<p>{{panel.articleService.article.content}}</p>
{{panel.articleService.article.title}
{{panel.articleService.article.content}
演示:你说得对。避免使用$rootScope,这样您的代码可以是自包含的。关于你的答案,我正在等待。非常感谢。我尝试在视图中使用
articleService
。我想我可以访问articleService
,而无需在controller中定义。
<h1>{{panel.articleService.article.title}}</h1>
<p>{{panel.articleService.article.content}}</p>