尝试在按钮单击时在Angular中附加REST URL。

时间:2017-01-08 16:53:00

标签: angularjs rest ionic-framework

所以我在Ionic框架中设置了以下工厂/控制器,它工作正常。但是,我想提供三个按钮,一旦点击,更改位置 - 例如按钮1 =伦敦,按钮2是纽约,按钮3将其更改为MADRID。我现在可以通过编写三个工厂并更改API URL来进行此操作 - 对其进行硬编码,但它看起来很混乱。我想知道是否有一种方法可以将“点击”链接到一个参数或什么东西?我已经搜索过,我已经看过搜索,插值和$资源教程,但似乎没有什么是正确的。

.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月以来一直这样做,所以对它来说很新!

这变得非常接近,但仍未真正解决...... Get URL param in Express API from Angular UI-Router

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

<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>

1 个答案:

答案 0 :(得分:1)

可以传递修改请求网址所需的值,例如:

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;
     });
 }

然后在您的州配置中使用location而不是index来获得更有意义的url显示