Angularjs 添加新记录时,指令不会更新
我创建了一个简单的指令来显示我电影范围内的所有电影Angularjs 添加新记录时,指令不会更新,angularjs,angular-directive,Angularjs,Angular Directive,我创建了一个简单的指令来显示我电影范围内的所有电影 app .directive('movieOverview', function () { return { template: '<div ng-repeat="movie in movies">Name: {{movie.title}}</div>', controller: 'searchCtrl', }; }); 这里要看到的重要内容是.then(init) 我添
app
.directive('movieOverview', function () {
return {
template: '<div ng-repeat="movie in movies">Name: {{movie.title}}</div>',
controller: 'searchCtrl',
};
});
这里要看到的重要内容是.then(init)代码>
我添加了一个电影,然后执行init函数,该函数将触发一个名为loadMovies的服务
.factory('movieService', ['$http', function($http) {
return {
loadMovies: function() {
return $http.get('/movies.json');
}
};
}])
它请求新电影,然后更新视图
var newMovie = {
title: $scope.movieListID.original_title,
release_date: $scope.movieListID.release_date,
image: $scope.movieListID.poster_path,
movie_id: $scope.movieListID.id
};
createMovie.create(newMovie).then(function(){
$scope.movies.push(newMovie);
});
您也可以尝试在指令中执行以下操作:
scope: {
movies: '=movies'
},
这将创建一个双向绑定您可以在将电影添加到作用域的位置添加代码吗?@thsorens我已经从控制器添加了代码。我可能会在json文件中查找缓存。与其重新加载所有内容,不如将结果推到电影列表中$scope.movies.push(newmovie);你能把你的建议扩大一点吗?两个建议似乎都不起作用。添加新记录时,视图不会更新。
var newMovie = {
title: $scope.movieListID.original_title,
release_date: $scope.movieListID.release_date,
image: $scope.movieListID.poster_path,
movie_id: $scope.movieListID.id
};
createMovie.create(newMovie).then(function(){
$scope.movies.push(newMovie);
});
scope: {
movies: '=movies'
},