我想了解以下几段代码。如果我理解正确,下面我有三个与REST服务器数据源交互的资源对象(这些对象分别为CategorySrv
,ArticleSrv
和SearchSrv
)。
app.factory('CategoryService', function($resource) {
return $resource('categories');
});
app.factory('ArticleService', function($resource) {
return $resource('articles');
});
app.factory('SearchService', function($resource) {
return $resource('articles/search');
});
现在,我想问的问题,如果何时是控制器的代码执行?如果我加载页面,它可能只运行一次。下一次它会什么时候运行?控制器的代码不会在循环中运行,而只能在视图中调用其方法或者加载此控制器的页面部分(AFAIK)时运行。
发生这种情况时,上面列出的资源对象注入参数列表和控制器的功能被称为:
app.controller('AppCtrl', function($scope, $location, CategoryService, ArticleService, CartService) {
CategoryService.query(function(response) {
$scope.categories = response;
});
ArticleService.query(function(response) {
$scope.articles = response;
});
CartService.get(function(response) {
$scope.cartInfo = response;
});
难道我理解这是否正确?另外,get
和query
之间的区别是什么?
时,该网站加载因此,基本上,所有的查询,并得到-S执行,旁边的消化周期将更新视图(它会停止循环检测没有什么改变后$范围),就是这样吗?之后没有其他行动? – user107986
不是在这种情况下,没有。只是要清楚。初始渲染将提供空阵列。这可能会影响您在模板上可能具有的任何重复次数,并显示未填充表格或列表。一旦响应回来,那么数组将被填充,并且由于摘要周期检测到范围的更改,您的视图将重新呈现。 – tells
在这种情况下,您可能会看到3个额外的重新渲染,因为您的响应会在不同的时刻出现。 – tells