小编Mic*_*ber的帖子

AngularJS - 使用controllerAs语法和服务属性进行DRY双向数据绑定

我偶然发现了一个应该是常见且明显的问题,但我似乎无法绕过它.

我正在研究一个小型原型应用程序.我的后端开发人员在JSON对象中为我提供了配置文件数据.让我们说,它看起来像这样:

profile = {Name: 'John', Email: 'john@mail.com', DOB: '1980-11-03'}
Run Code Online (Sandbox Code Playgroud)

我需要在多个位置使用这些值,我也不想在控制器中放置后端http调用,所以我创建了一个服务来处理这个:

angular.module('app', [])
.service('ProfileService', ['$http', function ($http) {
    var service = this;

    service.Name = null;
    service.Email = null;
    service.DOB = null;

    service.getProfile = function () {
        return $http.get('/profile').then(function (response) {
                service.Name = response.data.Name;
                service.Email = response.data.Email;
                service.DOB = response.data.DOB;
                return true;
            });
    };

    return service;
}])
.controller('ProfileCtr', ['ProfileService', function (service) {
    var vm = this;

    service.getProfile().then(function () {
        vm.Name = service.Name;
        vm.Email = service.Email;
        vm.DOB = service.DOB;
    });
}]);
Run Code Online (Sandbox Code Playgroud)

此解决方案存在许多问题: …

javascript dry angularjs

5
推荐指数
1
解决办法
543
查看次数

标签 统计

angularjs ×1

dry ×1

javascript ×1