Angularjs 尝试在单击按钮时将REST url附加到Angular中。

Angularjs 尝试在单击按钮时将REST url附加到Angular中。,angularjs,rest,ionic-framework,Angularjs,Rest,Ionic Framework,因此,我在Ionic框架中设置了以下工厂/控制器,它运行良好。然而,我想提供三个按钮,一旦点击,改变位置-例如按钮一=伦敦,按钮二是纽约和按钮三改变它的马德里。目前,我可以通过编写三个工厂并更改API URL来实现这一点——硬编码,但这看起来很混乱。我想知道是否有一种方法可以将“点击”链接到参数或其他什么?我搜索过,也看过搜索、插值和$resource教程,但似乎没有什么是完全正确的 .factory('eventService', function ($http) { var even

因此,我在Ionic框架中设置了以下工厂/控制器,它运行良好。然而,我想提供三个按钮,一旦点击,改变位置-例如按钮一=伦敦,按钮二是纽约和按钮三改变它的马德里。目前,我可以通过编写三个工厂并更改API URL来实现这一点——硬编码,但这看起来很混乱。我想知道是否有一种方法可以将“点击”链接到参数或其他什么?我搜索过,也看过搜索、插值和$resource教程,但似乎没有什么是完全正确的

.factory('eventService', function ($http) {
    var events = [];

    return {
        getEvents: function () {
            return $http.get('http://api.API.com/json/q=music&location=LONDON&app_key=XXX').then(function (response) {
                events = response.data.events;
                return response.data.events;
            });
        },
        getEvent: function (index) {
            return events.event[index];
        }
    }
})
//控制器

      .controller("GigsCtrl", function ($scope, eventService) {
        eventService.getEvents().then(function (events) {
            $scope.events = events;
        });
    })
//每个项目都可以点击,等等

    .controller("GigDetailCtrl", function ($scope, $stateParams, eventService) {
        $scope.event = eventService.getEvent($stateParams.index);
        console.log("Second Controller says: Hello World - I work");
    })
这可能是一个非常简单的解决方案,我只是看不见森林的树木!温柔一点,我从12月才开始这么做,对它来说太新鲜了

这非常接近,但仍然没有真正解决

//按钮-每个按钮都会进入一个新的搜索页面,当前每个页面都有一个工厂,但理想情况下,我会点击按钮改变一个“主”工厂

<ion-content class="padding">
    <div class="button-bar bar-dark">
        <a href="#/london" class="button">London</a>
        <a href="#/madrid" class="button">Madrid</a>
        <a href="#/newyork" class="button">New York</a>

可以传入修改请求url所需的值,例如:

getEvents: function (location) {

    var params ={
       q:'music',
       app_key: your_app_key,
       location: location ? location.toUpperCase() :'LONDON';//default
    };
     return $http.get('http://api.API.com/json/', {params: params}).then(function (response) {             
         return response.data.events;
     });
 }

然后在状态配置中,使用位置而不是索引来显示更有意义的url

Kyle。请阅读一次你的文章,并有意义地重新措辞,还有你面临的问题是什么?更新到postAhh这几乎就是它-它是如此接近,但它将如何看待事物的HTML/按钮方面?我只是不太明白如何将参数链接到按钮单击…您可以使用
$stateParams
并在您的状态配置中使用相同的url进行配置…配置中的url类似于
url:'music list/:location'
,并在htmlI中使用
ui sref=“music list stateName({location:'MADRID'})”
,请参见!就像我为GigDetailCtrl页面所做的一样…我会试试!非常感谢。