gpt4 book ai didi

angularjs - angularjs的业务逻辑在哪里?

转载 作者:行者123 更新时间:2023-12-04 01:54:15 26 4
gpt4 key购买 nike

假设单击按钮(在 View 中),要求是:从服务器获取数据。
我很困惑业务逻辑是否

i) 获取数据和

ii) 验证应在 Controller 内部或工厂(或服务)内部完成

应该放在工厂还是 Controller 里?
请帮忙!!

最佳答案

Controller 的目的是将数据绑定(bind)到您的 View 。它们不应包含任何逻辑,仅与您的服务通信。

homeModule.controller('homeCtrl',function($scope,Categories){
$scope.categories = Categories.items;
});
向您的服务添加一个函数来获取数据并将其存储在自身上:
fetchAll: function(){

var defer = $q.defer();
var self = this;

$http.get(URL})
.then(function(res){
self.data = res.data;
defer.resolve();
});

return defer.promise;
},
(请注意,这只是一种可能的做事方式。没有什么可以阻止您返回数据而不是将其存储在服务上。按需执行。)
如果可能,您应该考虑在 View 初始化之前获取数据。通过这样做,您可以确保在用户获得页面后立即提供必要的数据。
$http request before AngularJS app initialises?
进一步阅读
https://docs.angularjs.org/guide/services (阅读完整的开发者指南)
http://toddmotto.com/rethinking-angular-js-controllers/
另外我推荐官方 Tutorial

关于angularjs - angularjs的业务逻辑在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24694280/

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