我有两个控制器分配给两个视图:
[ResultsView ng-controller =" ResultsCtrl"] [SearchView ng-controller =" SearchCtrl"]
搜索视图有许多复杂的过滤器/选项,并由用户填写,然后他/她可以按"搜索"在SearchView上,结果应该填充到网格中。
现在,我可以通过服务或使用 $ rootScope。$ broadcast 在两者之间发送信息。
这是我遇到的问题:
[ResultsView ng-controller =" ResultsCtrl"] [SearchView ng-controller =" SearchCtrl"] [ResultsView ng-controller =" ResultsCtrl"] [SearchView ng-controller =" SearchCtrl"] [ResultsView ng-controller =" ResultsCtrl"] [SearchView ng-controller =" SearchCtrl"]
如果我在同一页面上有多个 结果搜索部分,我怎样才能确保他们各自相互独立?使用Service方法,ResultsCtrl和SearchCtrl都具有已定义的服务
.controller("searchCtrl", ["$scope", "$searchHttp", function ($scope, $searchHttp) {
.controller("resultsCtrl", ["$scope", "$searchHttp", function ($scope, $searchHttp) {
因此,我无法更改控制器的每个实例在服务方面的行为方式。当一个 SearchCtrl 调用该服务时,它将修改每个 ResultsCtrl 实例。
同样使用广播 $ rootScope。$ broadcast(" searchResults" ... 将被每个 ResultsCtrl 实例选中。
那么最好的解决方法是什么?我想重用结果和搜索视图代码,因为它基本相同。但是我需要在同一页面上独立渲染每对。
答案 0 :(得分:1)
我认为你需要的HTML结构是这样的。
vagrant reload
此HTML结构可帮助您独立使用在ResultsCtrl中创建的父搜索结果的搜索结果。
jsfiddle就在这里。 我希望这会对你有所帮助。 :)