Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript getState()返回null_Javascript_Jquery_Null_Google Wave_Getstate - Fatal编程技术网

Javascript getState()返回null

Javascript getState()返回null,javascript,jquery,null,google-wave,getstate,Javascript,Jquery,Null,Google Wave,Getstate,在我的GoogleWave小工具中尝试调用wave.getState()时,返回null(无状态对象)。如何初始化Wave state对象?我在波浪沙箱里工作 我的ModulePrefs包含以下内容: <Require feature="wave" /> <Require feature="rpc"/> 这里有两个主要的功能: 当模式更改时,将调用ipCombatState(…)。当用户将小工具置于编辑模式(CTRL+E)时,这会通过隐藏视图DIV并显

在我的GoogleWave小工具中尝试调用wave.getState()时,返回null(无状态对象)。如何初始化Wave state对象?我在波浪沙箱里工作

我的ModulePrefs包含以下内容:

    <Require feature="wave" />
    <Require feature="rpc"/>
这里有两个主要的功能:

  • 当模式更改时,将调用ipCombatState(…)。当用户将小工具置于编辑模式(CTRL+E)时,这会通过隐藏视图DIV并显示编辑DIV来更改小工具的视觉外观
  • newButtonClick回调(附加到编辑容器中的链接“a.newButton”)应该将Jeremias(Nate的Shadowrun角色)添加到gadget状态,以便他在编辑模式下显示为表行
我已验证是否调用了initializer方法,并且view/edit模式开关工作正常(状态为null除外)。当我单击NewButton链接(编辑模式下底部的链接)并触发newButtonClick处理程序时,我得到一个错误,因为wave.getState()也返回null

如何初始化wave状态以便使用它

我的小工具的目的是跟踪暗影奔跑桌面游戏(第四版)中的战斗主动顺序。您可以在Wave中进行测试,看看我目前的成果:

实际的javascript代码外部化为:


另外,如果有任何Shadowrun玩家读到了这篇文章,并且想在我让这个小工具工作时听到它,请留下评论,我会向你挥手。

我在上面睡了一觉,问题似乎在一夜之间就解决了。这是怎么发生的对我来说是一个完全的谜。我以为谷歌wave会在他们找到一种方法导出用户的wave后立即停止,不是吗?不知道为什么人们还在为它开发……在宣布之前,我发布了这个问题。我不再开发这个小玩意了。然而,也有人试图复兴这股浪潮。请参见方框中的波浪:
$.fn.extend({
     $.gork.InitPass.newButtonClick = function newButtonClick() {
           var jer = new $.gork.InitPass.Player('Jeremias', 12, 2);
           var delta = {};
           delta[jer.name] = jer.serialize();
           wave.getState().submitDelta(delta);
     };

    $.gork.InitPass.modeCallback = function modeCallback() {
           var state = wave.getState();
           var mode = wave.getMode();
           $.gork.InitPass.getContainer().ipCombatState(state, (mode == wave.Mode.EDIT));
    };

    $.gork.InitPass.stateCallback = function stateCallback() {
      $.gork.InitPass.getContainer().ipCombatState(
      wave.getState(), (wave.getMode() == wave.Mode.EDIT));
      alert('state');
    };

    $.gork.InitPass.init = function init() {
     if (wave && wave.isInWaveContainer()) {
       var mode = wave.getMode();
       $('.gork-ip-container').ipCombatState(null, (mode == wave.Mode.EDIT));

       wave.setModeCallback($.gork.InitPass.modeCallback);
       wave.setStateCallback($.gork.InitPass.stateCallback);
     }
    };
})(jQuery);
gadgets.util.registerOnLoadHandler($.gork.InitPass.init);

 $(function ready() {
  $.gork.InitPass.getContainer().find('.gork-ip-edit .addSection a.newButton').click(
   $.gork.InitPass.newButtonClick);
 });