如何通过后端连接 ionic 中的 2 个对象

Posted

技术标签:

【中文标题】如何通过后端连接 ionic 中的 2 个对象【英文标题】:how to connect 2 objects in ionic via backand 【发布时间】:2016-05-17 10:09:44 【问题描述】:

我的 ionic 项目需要一些帮助。所以我想在 ionic 中连接 2 个对象,这样我就可以显示具有来自另一个对象的数据的对象的值。

<ion-list class="list-inset">
  <ion-item class="item-text-wrap" ng-repeat='item in todos| filter:firma'>
  <h2>item.company_name</h2>
 </ion-item>
 <ion-item class="item-text-wrap" ng-repeat='item in todos2 | filter: idcompany:com_id  '>
 <h2>ponedeljek item.time_mon_start-item.time_mon_end</h2>
 <h2>torek item.time_tue_start-item.time_tue_end</h2>
 <h2>sreda item.time_wed_start-item.time_wed_end</h2>
 <h2>četrtek item.time_thu_start-item.time_thu_end</h2>
 <h2>petek item.time_fri_start-item.time_fri_end</h2>
 <h2>sobota item.time_sat_start-item.time_sat_end</h2>
 <h2>nedelja item.time_sun_start-item.time_sun_end</h2>
</ion-item>

这是我想为我点击的当前公司显示的内容,但它始终显示的不仅仅是我想要的一个。

.controller('AppCtrl', function($scope, TodoService, cas, $state) 
$scope.todos = [];
$scope.todos2 = [];

function getAllTodos() 
  TodoService.getTodos().then(function (result) 
    $scope.todos = result.data.data;
    $scope.firma = $state.params.aid;

  );

getAllTodos();

function getalltimes() 
  cas.getcompany().then(function (result) 
 $scope.todos2 = result.data.data;
);



getalltimes();
)

.service('TodoService', function ($http, Backand, $state) 
var baseUrl = '/1/objects/';
var objectName = 'companies/';

function getUrl() 
return Backand.getApiUrl() + baseUrl + objectName;

function getUrlForId(id) 
return getUrl() + id;


getTodos = function () 
return $http.get(getUrl());
;
return 
getTodos: getTodos

)

.service('cas', function ($http, Backand, $state) 
var baseUrl = '/1/objects/';
var time = 'companies_timetable/';

function getUrl2() 
return Backand.getApiUrl() + baseUrl + time;

getcompany = function () 
return $http.get(getUrl2());
;
 return 
getcompany: getcompany

)

现在这是我的 app.js 文件以及我与 backand 服务的连接。这工作正常。

this are the companys from object 1

and this are the times showing

所以当你点击公司时,它应该显示它的时间。但在这里它显示了对象中的所有时间。我应该只为一家公司显示一份 我试图将所有对象放在一个数组中(待办事项)。但效果不佳。所以请我需要一些帮助。如果您需要更多代码或其他内容,请直接说出来 :)。

【问题讨论】:

【参考方案1】:

你的第二个过滤器是错误的。

修复它的最简单方法是调用 $scope 中的函数。

像这样更改您的过滤器:

 <ion-item class="item-text-wrap" ng-repeat='item in todos2 | filter: isCurrentFirma '>

然后在你的控制器中添加一个函数:

$scope.isCurrentFirma = function(item)
  // here check if item is equal to firma

  // code like this:
  return item.idcompany === $scope.firma.com_id

【讨论】:

不知何故它给了我和我一样的结果。现在我每次都能再次获得,而不仅仅是我需要的。 我进入控制台,它说 com_id 未定义。 好的,功能没问题,但现在我点击公司时它不会显示任何时候

以上是关于如何通过后端连接 ionic 中的 2 个对象的主要内容,如果未能解决你的问题,请参考以下文章

如何验证与服务器的连接来自具有 Ionic/AngularJS/Cordova 的应用程序?

ionic2 将对象数据发送到后端

如何将 Mongoose 后端类连接到前端类(Ionic 与 Angular.io)

如何在 Ionic 中使用后端实现主细节模式?

在 Ionic 项目中获取并显示后端 json 数据作为下拉列表

如何围绕对象状态设计系统以不重复代码和后端中的机制?