我陷入了一些似乎很容易的事情,但我找不到可行的方法。
我正在使用英特尔XDK在AngularJS中开发混合移动应用程序,我必须显示来自JSON的一系列结果,并允许用户点击其中一个获取更多信息。我需要在页面A上显示列表,在页面B上显示完整的信息。
到目前为止我已经完成了所有但是在B页上显示完整信息,即使我设法获得了点击项目的ID。我拥有的是
Controller.js
.controller('myController', function($scope,$http) {
//This to get de JSON
$http({ method: 'GET',
url: '/lib/myData.json'
}).then(function successCallback(response) {
$scope.misDatos = response.data;
}, function errorCallback(response) {
console.error ("no json data");
});
//This to get the item clicked
$scope.setMaster = function(section) {
$scope.selected = section;
console.log("Item Clicked: " + $scope.selected.id);
};
})
将pageA.html
<div class="card" ng-repeat="dato in misDatos" ng-click="setMaster(dato)" >
<div class="item item-divider">
{{dato.objetivo}}
</div>
<div class="item item-text-wrap">
<p>{{dato.descripcion}}...</p>
</div>
<div class="item item-divider">
<a href="#/app/playlists/"></i> Más información</a>
</div>
</div>
PageB.html
<div class="list card" ng-repeat="dato in misDatos | filter: {id:selected}">
<div class="item item-avatar">
<h4>{{dato.objetivo}}</h4>
</div>
<div class="item">
<p>{{dato.descripcion}}</p>
</div>
</div>
在我的控制台中,我可以看到第A页点击了正确的ID
Item Clicked:3
但我不能让我的“B”页面显示所选结果的数据......
你知道我做错了什么吗?有没有一个很好的教程呢?
提前感谢大家!
答案 0 :(得分:0)
在B页中,您应该绑定到所选项目的值,如下所示
<div class="list card">
<div class="item item-avatar">
<h4>{{selected.objetivo}}</h4>
</div>
<div class="item">
<p>{{selected.descripcion}}</p>
</div>
</div>
这是因为所选项目的值现已绑定到scope
到$scope.selected
答案 1 :(得分:0)
最后我做到了。这就是它对我有用的方式;希望它可以帮助某人,bcos我在这个问题上花了整个时间。
正如埃文斯所说,问题在于“页面B”上没有可用的数据,因此解决方案是将信息发送到该页面。我使用了http://excellencenodejsblog.com/angularjs-sharing-data-between-controller/的引用,将工厂放在“app.js”文件中,将控制器放在“controllers.js”文件中。
干杯!