Javascript 在ng repeat中调用方法
我在学习angularjs,所以我开始玩yts数据库电影api,它工作得很好,直到我注意到我的主页上需要不同的功能,例如“最新电影”、“最佳评级”。 所以我创建了一些方法,其中每个方法都与最新的电影或升级电影相关,等等。但是我不能让代码启动,我的init方法 这是我的密码:Javascript 在ng repeat中调用方法,javascript,angularjs,Javascript,Angularjs,我在学习angularjs,所以我开始玩yts数据库电影api,它工作得很好,直到我注意到我的主页上需要不同的功能,例如“最新电影”、“最佳评级”。 所以我创建了一些方法,其中每个方法都与最新的电影或升级电影相关,等等。但是我不能让代码启动,我的init方法 这是我的密码: var app = angular.module('myApp', ['ngRoute']); app.config(function($routeProvider){ $routeProvider
var app = angular.module('myApp',
['ngRoute']);
app.config(function($routeProvider){
$routeProvider
.when('/home',{
templateUrl: 'assets/template/home.html',
controller: 'HomeController'
})
.otherwise({
redirectTo: '/home'
});
});
app.controller('HomeController', function($scope,$http){
$scope.upcomingList = [];
$scope.latestMovies = [];
//initilize
$scope.init = function() {
$scope.getCommingSoon();
$scope.getLatestMovies();
};
$scope.getLatestMovies = function(){
$http({
method: 'GET',
url: 'https://yts.to/api/v2/list_movies.json'
})
.success(function(data, status, headers){
$scope.latestMovies = data;
})
.error(function(data, status, headers){
});
}
$scope.getCommingSoon = function() {
$http({
method: 'GET',
url: 'https://yts.to/api/v2/list_upcoming.json'
})
.success(function(data, status, headers){
$scope.comingsoon = data;
})
.error(function(data, status, headers){
});
};
});
home.html
<div ng-init="init();" class="container home-content">
<div ng-repeat="movie in getLatestMovies | limitTo: 4" class="browse-movie-wrap col-xs-10 col-sm-5">
<p>{{latestMovies}}</p>
</div>
不会呈现数据,因为您在ngRepeat中使用了getLatestMovies而不是latestMovies,并且不需要使用ngInit 您可以直接在ngRepeat内部调用方法
<div class="container home-content">
<div ng-repeat="movie in getLatestMovies() | limitTo: 4" class="browse-movie-wrap col-xs-10 col-sm-5">
</div>
天狼星的答案是,你需要在最新电影中使用电影。 原因是: 1 ngRepeat指令中的属性只接受表达式,不计算表达式 2 AngularJs是一个模型视图框架。当你和Angular一起工作时,真的试着用Angular思考。将数据放入模型的方式都在控制器中设置。该视图是一个以html标记显示组织数据模型的窗口。只有某些事件触发指令(如ngClick)会评估控制器中的方法,以触发模型更改事件,$watch会一直监视该事件
无论如何,在您的情况下,您实际上只需要使用一个模型,而不是在您的作用域中使用一个方法,因为视图需要绑定一个模型。您需要在latestMovies中使用ng repeat=movie | limito:4@MaheSirius非常感谢,愚蠢的我,最后一个问题,在我的ng repeat中,我必须将电影放在latestMovies.data.movies中,因为json是一个多维数组,这是正确的方法还是我必须在控制器中进行此更改?你可以这样做,或者直接分配$scope=data.data.movies会更好。我会将此作为答案发布,请接受: