将参数传递给AngularJS控制器方法
问题描述:
这可能是一个非常基本的问题,但我找不到答案。我刚开始学习AngularJs,我试图用控制器做一个简单的页面,您可以在输入中输入文本并发出HTTP GET请求。到目前为止,我有以下几点:将参数传递给AngularJS控制器方法
在HTML
<body ng-app="starter" ng-controller="searchController as searchController">
<ion-pane>
<ion-header-bar class="bar-stable">
<h1 class="title">Ionic Blank Starter</h1>
</ion-header-bar>
<ion-content>
<input type="text" ng-model="searchController.searchString" required />
<button class="btn" ng-click="searchController.search()">Search</button>
</ion-content>
</ion-pane>
在控制器
angular.module('starter', [])
.controller('searchController', function() {
this.searchURL = 'http://www.myapifilms.com/imdb?title=%thetitle%&format=JSON';
this.searchString = '';
this.search = function searchMovie() {
url = this.searchURL.replace('%thetitle%', this.searchString);
console.log("URL: " + url);
this.searchRequest($http, url);
};
this.searchRequest = function ($http, url) {
$http.get(url).success(function(data) {
console.log("Success: " + data);
})
};
});
线this.searchRequest($http, url);
显然是错误的,因为我没有提到的$ HTTP,稍后将由AngularJs注入。
所以我的问题是如何混合AngularJs服务,如$ http与我自己传递的参数?也许我没有正确地设计这一点,并希望听到关于此的评论。我的目标是获取输入文本并用它发出HTTP请求。
答
你应该在注入控制器申报服务(角或您的自定义服务),而不是通过它的方法
angular.module('starter', [])
.controller('searchController', ["$http", function($http) {
...
}]);
这奏效了,感谢! – momo 2014-10-03 03:53:38