我最近开始学习angularjs使用restangular与我的restfull API(sails)交谈.我偶然发现的问题是,在更改范围中的列表后,ng-repeat不会更新.
控制器:
app.controller('UsersCtrl', ['UsersSvc', '$scope', function(UsersSvc, s) {
UsersSvc.getList().then(function (new_users) {
s.users = new_users;
})
s.destroy = function (user) {
user.remove().then(function () {
s.users = _.without(s.users, user);
});
}
}]);
Run Code Online (Sandbox Code Playgroud)
服务:
app.factory('UsersSvc', function(Restangular) {
return Restangular.all('users');
});
Run Code Online (Sandbox Code Playgroud)
模板:
<div ng-controller="UsersCtrl">
...
<tr ng-repeat"user in users">
<td>{{user.firstName}}</td>
<td>{{user.lastName}} </td>
<td>{{user.emailAddress}}</td>
<td>{{user.age}}</td>
</tr>
...
</div>
Run Code Online (Sandbox Code Playgroud)
当我检查范围时,restangular对象数组被正确地分配给用户控制器的范围,但模板拒绝更新.
提前致谢
我现有的数据库中有很多表示枚举的整数。在我的 python 项目中,我创建了相应的枚举,如下所示:
class Status(Enum):
OK = 0
PENDING = 1
CANCELED = 2
DUPLICATE = 3
INCOMING = 4
BLOCKED = 5
Run Code Online (Sandbox Code Playgroud)
在我的 SQLalchemy 模型中,我希望能够执行以下操作
status = Column(Status, nullable=False)
Run Code Online (Sandbox Code Playgroud)
哪个应该将数据库整数转换为 python 枚举并透明地返回
到目前为止,我已经尝试从 sqlalchemy.types.TypeDecorator 继承并覆盖 process_bind_param 和 process_result_value 以将 int 来回转换。
然而,这意味着我将不得不为每个 Enum 重复这一点,这违反了 DRY 原则。
因此,我更喜欢一个 Mixin 类,它继承 sqlalchemy.types.TypeDecorator 并覆盖两个方法来转换到继承这个 mixin 的 Enum。
关于如何解决这个问题的任何想法?