我正在建立一个酒店网站,并在我的主页上有一个搜索目的地,到达,离开等。
我也将搜索集成在网站的不同页面上。这被用作我的模板中的包含,并且我使用ng-show将其隐藏在我的主页上,因为我想在主页上使用带有搜索字段的整页jumbotron。
因此我的观点不同,但功能完全相同。
我的主视图正在寻找家庭控制器,我的搜索视图正在寻找我的搜索控制器。
我已经设置了一个全局控制器(我为css添加了页面标题和活动导航状态等功能)所以对我而言,这将是两个搜索表单都可以访问并传递所需数据的地方。
我的全局控制器被添加到body标签中,我可以使用console.log访问它。
我以为我可以在两种表格上访问ng-submit="globalController.setDestination()"
,但没有任何反应。
如何通过usng ng-submit访问全局控制器?我是否需要这些去他们的相关控制器然后以某种方式路由它? 2个视图是否有更好的方法来访问/传递相同的数据?
我知道我可以提供服务但是我也有很多$scope
个元素,所以我认为通过将2个视图传递给1个控制器可能会让这个干掉。
<form name="destinationSearch" ng-submit="globalController.setDestination()">
我的模板的一部分
<body ng-cloak ng-controller="globalController">
<div id="wrap">
<header class="hidden-xs-up">
<h1 ng-bind="$state.current.data.pageTitle"></h1>
</header>
<!-- Load the header -->
<div ng-controller="NavController" ng-include src="'app/components/core/nav.html'"></div>
<!-- /header -->
<div>
<!-- Load Search -->
<div ng-show="globalData.showSearchBar">
<div ng-include src="'app/shared/search/searchView.html'"></div>
</div>
<!-- /search -->
<!-- Angular -->
<div ui-view></div>
<!-- /Angular -->
</div>
</div>
答案 0 :(得分:1)
尝试使用controllerAs语法
<body ng-cloak ng-controller="globalController as gc">
然后使用
<form name="destinationSearch" ng-submit="gc.setDestination()">
查看this了解更多信息。
答案 1 :(得分:0)
尝试使用 $ parent 语法:
ng-submit="$parent.setDestination()"