小编Ste*_*eve的帖子

是否可以使用泛型返回类型定义接口方法,并且具体实现定义返回类型?

我想创建一个接口:

public interface OperandValue
{
    <T> T getValue();
}
Run Code Online (Sandbox Code Playgroud)

我希望有一个像这样的具体实现:

public class NumberOperandValue implements OperandValue
{
    @Override
    public <Integer> Integer getValue()
    {
        // some integer value that is set elsewhere
        return 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

Eclipse强调<Integer>给我一个警告说:

类型参数Integer隐藏了Integer类型

如果这可以以某种方式工作,我感谢任何建议.我意识到我可以在接口级别而不是方法级别定义泛型类型,但是如果可能的话,我想尝试使其工作.

java generics

14
推荐指数
1
解决办法
2万
查看次数

在一个指令中更新数据需要反映在另一个指令中时,使用$ apply是不好的做法吗?

我有一个容器和子指令,它们都会影响通过服务引用的数据.一般的想法是,我希望能够点击子指令,并根据以下规则"选择"它们.并且能够单击容器指令以清除选择.

基本规则是:

  • 除非按住一个孩子,否则一次只能选择一个孩子
  • 单击子项(无shift键),当选择其他项时,将清除其他项并选择当前项
  • 单击选中的子项将不会取消选中该子项
  • 点击一个孩子的班次将仅切换该孩子
  • 单击子项外部(在容器中)应清除所有选择

以上所有规则都非常简单易行.我遇到的主要麻烦是最后一条规则.单击容器实际上会将所选值设置为false,但是在下一个用户操作之前UI不会更新.让容器的click事件在$ apply中包装对服务的调用,"修复它".

.directive('myContainer', function (dataService) {
    return {
        restrict: 'A',
        scope:{data:"="},
        link:function(scope, element, attrs){
            element.bind('click', function() {
                scope.$apply(function() {
                    dataService.clearSelectedChildren();
                });
            });
        }
    };
})
Run Code Online (Sandbox Code Playgroud)

但是,我似乎已经准备好$ apply通常用于外部更新(在角度世界之外)到数据(即对远程服务器的异步调用)?那么,我是否滥用申请?如果是这样,我怎么能够实现我的目标呢?

这是一个有效的JSFiddle供参考.

angularjs angularjs-directive

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

如何从最初加载数据中抑制jqgrid?

我有一个页面上有几个jqGrids,还有一些其他字段.我想自己做一个AJAX调用,它会返回一个JSON对象,该对象具有应该用于填充整个页面的数据.

所以,我想自己调用,填充"其他字段",然后从返回的主JSON对象中拉出几个集合,并"手动"填充每个jqGrids与这些集合.

我有这么多工作,但我不能让jqGrid停止尝试自己发出一个AJAX请求.难道有没有办法告诉jqGrid在初始化时不尝试AJAX调用?

我在这里发现了一个类似的问题:如何从最初加载数据中抑制jqgrid?

但我没有为海报解决问题的选择.

对我来说似乎很合理,有些人可能想要使用这个插件,而不会让表在初始化时尝试获取自己的数据.我在文档(wiki - options)中的某个地方错过了一个选项吗?

谢谢.

jquery jqgrid

4
推荐指数
1
解决办法
7074
查看次数

标签 统计

angularjs ×1

angularjs-directive ×1

generics ×1

java ×1

jqgrid ×1

jquery ×1