gpt4 book ai didi

javascript - Onsen ng-repeat 和 ajax

转载 作者:行者123 更新时间:2023-11-28 00:02:01 26 4
gpt4 key购买 nike

我的应用程序有一个大问题,我认为这是由异步调用引起的。

html部分是:

<ons-list ng-repeat="item in newsEventi.items">
<ons-list-header class="news_titolo_lista">{{item.categoria}}</ons-list-header>
<ons-list-item class="news_titolo">
({{item.titolo}})
</ons-list-item>
</ons-list>

js部分( Controller )是:

app.controller('NewsEventiController', ["$scope", function($scope)
{
//--------------------//
// private variables
//--------------------//
var _self = this;

var _items = [];

//--------------------//
// private functions


//--------------------//
// constructor
(function()
{

var url = "http://www.gaelico.net/app/test_json.php";
// IT RETURNS -> [{"titolo":"test","categoria":"cat1"},{"titolo":"test1","categoria":"cat2"}]
$.post(url, {data: JSON.stringify({regID: localStorage.getItem("regID")})},
function(json)
{
_items = JSON.parse(json);
$scope.$apply();
console.log("After: " + _items);
});
})();

//--------------------//
// public properties
//--------------------//

this.items = _items;
console.log("Before: " + this.items);

//************************************************************************//
// public methods
//************************************************************************//

}]);

我的问题是列表从不显示 2 个元素。我使用 $scope.$apply() 因为我认为这是更新列表的正确方法,但它似乎不起作用。

预先感谢您的每一个建议。

<小时/>

编辑我尝试按照建议更改脚本,现在代码是

app.controller('NewsEventiController', ["$scope","$http", function($scope,$http)
{
//--------------------//
// private variables
//--------------------//
var _self = this;

$scope._items = [];

//--------------------//
// constructor
(function()
{
// the url returns: [{"titolo":"test","categoria":"cat1"},{"titolo":"test1","categoria":"cat2"}]
$http.get("https://www.gaelico.net/app/test_json.php")
.success(function(response) {
console.log(response);
// it shows in the console, correctly: "Object, object"
$scope._items = response;
});

})();

//--------------------//
// public properties
//--------------------//

console.log("Before: " + $scope._items); // empty


}]);

(在 ng-repeat 中,我将 ng-repeat="item in newsEventi._items")但我仍然没有在列表中看到任何更新。

最佳答案

声明如下项目:

$scope._items = []

你的ngRepeat:

item in _items

您不需要调用 apply,我建议您查看 Angulars http 模块而不是使用 jquery。

关于javascript - Onsen ng-repeat 和 ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31711259/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com