小编sde*_*oot的帖子

如何为AngularJS模块提供配置?

目前,我正在将传统应用程序与使用AngularJS编写的一些动态部分相结合.我想从我的服务器到我的模块提供一些配置.在这种情况下,我想配置应用程序"基本"URL.可以在特定位置找到所有模板,此位置由服务器确定.

所以我尝试过这样的事情:

angularForm.config(
 function($routeProvider, TemplateLocator) {
    $routeProvider.when('/', {
        controller : TestController,
        templateUrl : TemplateLocator.getTemplate('FormOuterContainer')
 });
});
Run Code Online (Sandbox Code Playgroud)

在服务器上:

<script type="text/javascript">
 angular.module('BoekingsModule.config', []).provider('TemplateLocator', function() {
        this.$get = function() {
            return // something
        }

        this.getTemplate = function(name) { return 'location...'; }
    });
 </script>
Run Code Online (Sandbox Code Playgroud)

但是,我不确定这是正确的方法.简而言之:如何不必更改模块本身的情况下为模块提供一些(外部)配置?

configuration dependency-injection angularjs

10
推荐指数
1
解决办法
1744
查看次数

杰克逊用另一个字段的哈希添加自定义字段

所以,标题基本上描述了我需要的东西.比如说,要序列化的bean看起来像这样:

public class SomeBean {
    public String someString;
}
Run Code Online (Sandbox Code Playgroud)

我希望Jackson 像这样序列化SomeBean的一个实例:

{
    someString: '<the value>',
    __hash_someString: '<a proprietary hash of <the value>>'
}
Run Code Online (Sandbox Code Playgroud)

此功能应该是通用的.我不想为SomeBean编写特定的序列化程序,因为这需要在多个位置进行.将" __hash_someString " 添加到类本身不是一个选项,因为它会污染模型.

履行

我希望杰克逊能正常处理豆子.但是当遇到特定的注释(@GenerateHash)时,它应该像之前一样向对象添加另一个字段.所以它想这样:

public class SomeBean {
    @GenerateHash
    public String someString;
}
Run Code Online (Sandbox Code Playgroud)

这条路到目前为止

有很多类似的主题,但没有一个尝试这样的事情.我并没有真正进入Jackson Serialization的内部工作,但似乎你只能选择修改一个整体的对象.我还没有找到一种方法来拦截字段的序列化过程,只有该字段的值.

我试图使用BeanSerializerModifier实现这一点,并尝试使用@Serializer.但是,我通常最终会陷入无限循环.

我咨询的资源是(不限于):

简而言之, 我怎样才能让杰克逊序列化

public class SomeBean {
    @GenerateHash
    public String someString;

    public String unaffectedString;
}
Run Code Online (Sandbox Code Playgroud)

对此:

{
    someString: '<the value>',
    __hash_someString: '<a …
Run Code Online (Sandbox Code Playgroud)

java hash serialization json jackson

3
推荐指数
1
解决办法
1354
查看次数