【问题标题】:Ionic / Angular JS calling the next page by passing a value into a funcitonIonic / Angular JS 通过将值传递给函数来调用下一页
【发布时间】:2015-11-23 17:51:52
【问题描述】:

我试图弄清楚如何使用一些参数提交 ng-click="doSomething()"。例如 - 我有一个控制器,一个生成国家列表的视图有两个字段 - 国家名称和 ID。如果我在 countrydata 中执行 ng-repeat='item',我可以获得 {{ item.id }} 和 {{ item.countryname }} 的值。这将列出所有国家/地区 ID 及其名称。接下来,我想点击此列表项并传递值 ng-click="getStates({{ item.id }})" 以获取该国家/地区的州列表。我有一个名为 CountryController 的控制器设置。其中的 init() 函数为我提供了国家列表及其 ID。然后 getstates() 函数应该获取 item.id 并获取状态列表。如果我通过国家/地区 id 来获取该国家/地区的状态,我开发的宁静 API 在 Postman 中工作正常。但是当我使用视图状态时,什么也没有发生。我已经设置了模板和路线。这两个函数都是同一个控制器的一部分,并且作用域也被初始化为 {}

【问题讨论】:

    标签: angularjs ionic-framework


    【解决方案1】:

    ngClick 可以直接访问$scope,这意味着您不能将插值表达式传递给它(即{{someExpression}}),您可以简单地按原样传递对象:

    HTML

    <div ng-repeat="item in countrydata">
      <button ng-click="getStates(item.id)>Get States</button>
    </div>
    

    Javascript

    app.controller('SomeController', function($scope){ 
       scope.getStates = function(id) {
           // do stuff with id
       }
    })
    

    【讨论】:

    • 勒克斯,感谢您的回复。由于某种原因,我仍然没有工作。下面是我的html文件:
    • app 挂起 Webservice 不慢。 html
      {{ item.id }} {{ item.name }}
      $http.get('myapi').then(function(response) { $scope.countrydata = response.data; $scope.countrydata.id = response.data.id ; $scope.countrydata.name = response.data.name;
    • 我不确定您想要达到的目标,但这是否符合您的期望? plnkr.co/edit/eNhv30FG3WdsSWTlMsNB?p=info 显然点击功能会做更多(即获取状态),但这在功能上是您想要实现的吗?点击获取物品?
    • 好的,我对自己的代码做了一些调试。由于某种原因 ng-repeat 启动了一个无限循环。首先,我怀疑我的网络服务响应导致了一些问题。但结果却是 ng-repeat 我尝试了下面的数组: $scope.countrydata = [ {id: 1, country: 'USA'}, {id: 2, country: 'Canada'}, {id: 3,国家:'墨西哥'},{id:4,国家:'法国'}];我的代码与柱塞相同。您看到的 $http.get 是我不再进行的原始 Web 服务调用
    • $scope.init() 导致了无限循环。感谢您的帮助。
    猜你喜欢
    • 2015-07-21
    • 2020-10-21
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    • 1970-01-01
    相关资源
    最近更新 更多