使用resolve不会改变状态:Angular ui路由器

时间:2016-03-12 19:48:31

标签: angularjs angular-ui-router

我使用角度ui-router并在使用resolve

启动Controller m之前获取数据
.state('Equipment', {
                url: "/equipment",
                templateUrl: "/Scripts/app/equipment/templates/content.html",
                resolve: {
                    equipmentService: 'EquipmentService',
                    data: function (equipmentService) {
                        return equipmentService.getEquipment().$promise;
                    }
                },
                controller: 'EquipmentController'
            })

在设备服务中我正在做

resource.equipment.getEquipment().$promise.then(function (response) {

            _equipment.collection = _.map(response.data, function (item) {
                var obj = {
                    id: item.id,
                    name: item.name,
                    groupId: item.equipmentGroupId,
                    groupName: item.equipmentGroupName,
                    description: item.description
                }
                return obj;
            });
            return _equipment.collection;
        });

来自服务器服务对象的响应得到更新,但状态不会改变控制器的启动

如果我用

更改它
 return resource.equipment.getEquipment();

现在服务器响应控制器启动了 但服务并不像我使用服务在控制器之间共享数据。我必须更新服务对象文字

有人可以帮助我做错了吗

1 个答案:

答案 0 :(得分:0)

我认为这里有更好的选择。一旦从服务器检索数据,您就可以将此服务用作模型,并为此定义服务中的变量(属性)。看看下面的问题。 ui-route resolve not working