gpt4 book ai didi

angularjs - RestAngular 的最佳实践

转载 作者:行者123 更新时间:2023-12-04 17:08:59 29 4
gpt4 key购买 nike

所以我开始做一个自己的项目,我正在开发我的网站的前端。我从 PHP Laravel 后端开始,并为我的数据库设置了 API 服务。

考虑到混合应用程序,我开始将 angularjs 用于我的前端 Web 应用程序。对于使用 REST 与我的 API 进行通信,我遇到了 restangular,这非常好,因为这正是我所希望的。

只有一个问题困扰着我,没有真正的“指南”如何设置一个可维护的模块/工厂/提供者/服务来复制您的 api,该系统将数据存储在本地存储中或设置简单的系统,您可以在其中注入(inject)将“模型”放入 Controller 中,然后执行 Model->getAll()获取所有模型。

因为我是 angularJS 的新手,因此我对如何解决这个问题的知识相当有限。到目前为止,我已经做到了:

主要应用

var client = angular.module('clientApp', ['angulartics', 'angulartics.google.analytics', 'ngRoute', 'restangular']);

client.config(['$routeProvider', function($routeProvider){
$routeProvider
.when('/', {
controller: 'flongsController',
templateUrl: '/client_partials/Homepage.html'
})
.when('/flongs/:slug', {
controller: 'flongsController',
templateUrl: 'client_partials/Flong.html'
})
.otherwise({
redirectTo: '/'
});
}]);

flongs Controller
client.controller('flongsController', ['$scope', 'Restangular', '$routeParams', function ($scope, Restangular, $routeParams) {
//controller variables
var baseFlongs = Restangular.all('flongs');

$scope.flongs = {};

init();

function init() {
baseFlongs.getList().then(function(flongs){
$scope.flongs = flongs;
});
}

}]);

所以,我的问题很简单:

我如何改进此代码,使其更高效、更易于维护?

提前致谢,
尼克·范德梅杰

最佳答案

首先不要在 Controller 上使用服务逻辑,而是为此目的使用 angular.service 。

让我分享一下我是如何构建我的项目的,

首次构建 客服 :

angular.module('example').factory('exampleService', ['Restangular', function(Restangular){

// this is service object with list of methods in it
// this object will be used by controller
var service = {
getExamples: getExamples,
getExample: getExample
};

// get examples from server by using Restangular
function getExamples(){
return Restangular.all('examples').getList();
}

// get example with given id from server by using Restangular
function getExample(exampleId){
return Restangular.one('examples', exampleId).get();
}

return service;

}]);

我们在这里建立 示例服务 现在让我们将它注入(inject) Controller
angular.controller('ExampleCtrl', ['exampleService', function(exampleService){

// get examples by using exampleService
exampleService.getExamples().then(function (examples) {
$scope.examples = examples;
});

// get example with given id by using exampleService
exampleService.getExample('1234').then(function (example) {
$scope.example = example;
});

}]);

这就是我基本使用它的方式。对于更高级的用法,您可以查看 Restangular Github Page 中的示例.

关于angularjs - RestAngular 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28593016/

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