我是开发 Angular 应用程序的新手。
我有两种看法:
- Main:搜索元素。
- 结果:显示查询结果。
搜索器表单位于视图中,并且包含在(主视图和结果)视图中。两个视图都链接到同一个控制器。
问题是当我在主视图中单击搜索时,调用了服务并返回了值,但是结果未显示在结果视图中。
如果我在结果视图中执行相同的查询,一切正常并显示结果。
编码:
主视图和结果包括完全相同的搜索视图:
<div ng-include src="'partials/boat-searcher.html'" class="text-center"></div>
搜索者视图:
<input type="text" ng-model="departure" typeahead="suggestion for suggestion in cities($viewValue)" class="input-xlarge input-height-large" placeholder="Salida" autocomplete="off">
我的应用程序:
angular.module('myApp', ['myApp.filters', 'myApp.services', 'myApp.directives', 'myApp.controllers']).
config(['$routeProvider', '$httpProvider', function($routeProvider, $httpProvider) {
$routeProvider.when('/home', {templateUrl: 'partials/home.html', controller: 'BoatListCtrl'});
$routeProvider.when('/option-list', {templateUrl: 'partials/option-list.html', controller: 'BoatListCtrl'});
}]);
我的控制器:
.controller('BoatListCtrl', function BoatListCtrl($scope, $location, $routeParams, $http, Boat, Equipment, Extra) {
// Departures typeahead
$scope.departure = undefined;
$scope.cities = function(cityName) {
return $http.get("http://localhost:3000/departures?query="+cityName).then(function(response){
var names = response.data.map(function (source) { return source.name; });
return names;
});
};
// Gets options (boats)
$scope.getOptionList = function(departure, fechaSalida, fechaLlegada, personas) {
$scope.boats = Boat.query({departure: departure, fechaSalida: fechaSalida, fechaLlegada: fechaLlegada, personas: personas});
$location.path('/option-list');
};